/// <reference path="jquery-1.5-vsdoc.js" />
/// <reference path="defaultValidator.js" />
/*
		CSS Browser Selector v0.4.0 (Nov 02, 2010)
		Rafael Lima (http://rafael.adm.br)
		http://rafael.adm.br/css_browser_selector
		License: http://creativecommons.org/licenses/by/2.5/
		Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);

jQuery.cookie=function(name,value,options){if(typeof value!='undefined'){options=options||{};if(value===null){value='';options.expires=-1;} var expires='';if(options.expires&&(typeof options.expires=='number'||options.expires.toUTCString)){var date;if(typeof options.expires=='number'){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;} expires='; expires='+date.toUTCString();} var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; domain='+(options.domain):'';var secure=options.secure?'; secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var cookieValue=null;if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}} return cookieValue;}};

$(document).ready(function(){
  if($.cookie("ie6nomore") == null){
    $(".ie6-message").show();
  }
  
  
  
  var accordions = $(".accordion");
  if(accordions.length > 0){
    var idx = 0;

    accordions.first().find("a.navHeader").each(function(){
      if($(this).hasClass("active")){
        return false;
      }
      idx++;
    });
    accordions.accordion({header: "a.navHeader", collapsible: true, active: idx});

  }



  contact.initi();
  ie6.hoverize();
});

var ie6 = {
    hoverize: function(){
        if($.browser.msie && parseInt($.browser.version) < 7){
            $(".mainNav li").mouseover(ie6.mainNavEnter).mouseleave(ie6.mainNavLeave);
            $(".triCol .item").mouseover(ie6.triColEnter).mouseleave(ie6.triColLeave);
        }
    },
    mainNavEnter: function(){
        $(this).addClass("hover");
    },
    mainNavLeave: function(){
        $(this).removeClass("hover");
    },
    triColEnter: function(){
        $(this).addClass("active");
    },
    triColLeave: function(){
        $(this).removeClass("active");
    }
}

var contact = {
  initi: function(){
    var ancor = $(".contactComponent > a");
    if(ancor.length > 0){
      ancor.click(contact.talkClicked);
      var dv = new validator();
      dv.applyFormValidation({        validationMessages: $(".contentComponent p.validtion"),        fieldErrorClass: "errorState",        submitButton: $(".contactComponent a.send"),        doPostback: contact.postData,        fields: [          { type: "required", control: $("#contactName"), msg: "Your name is required" },          { type: "email", control: $("#contactEmail"), msg: "A valid email is required"},          { type: "required", control: $("#contactMessage"), msg: "Please enter your message"}        ]      });//end of appluFormValidation
    }

  },
  talkClicked: function(e){
    //ie < 7 only switches because their js processing is too slow
    var daDiv = $(".contactComponent div");
    if($.browser.msie && parseInt($.browser.version) < 7){
        if(daDiv.css("display") == "none")
            daDiv.show().css("position", "relative");
        else
            daDiv.hide().css("position", "absolute");
        e.preventDefault();
        return;
    }
    var top = "48px";
    var add = true;
    var ease = "linear";
    var me = $(this);
    var dur = 250;
    if(me.hasClass("expanded")){
      top = "-305px";
      add = false;
      ease = "linear";//bouse looks lame when coming back up
      dur = 250;
    }
    else{
      me.addClass("expanded");
    }
    if($.browser.msie && parseInt($.browser.version) < 7){
      if(add){
        daDiv.addClass("expanded");
        me.addClass("expanded");
      }
      else{
        daDiv.removeClass("expanded");
        me.removeClass("expanded");
      }
    }
    else{
      var didChange = false;
      if(daDiv.css("position") == "absolute"){
        daDiv.css("position", "relative");
        didChange = true;
      }


      daDiv.animate({
        top: top},{
        duration: dur,
        specialEasing: {
          top: ease
        },
        complete: function(){
          if(add){
            daDiv.addClass("expanded");
          }
          else{
            daDiv.removeClass("expanded");
            me.removeClass("expanded");
          }
          if(daDiv.css("position") == "relative" && !didChange)
            daDiv.css("position", "absolute");
        }});
    }
    e.preventDefault();
  },
  postData: function(){
    $("p.info").html("Submitting...")
        .fadeIn(500);

    var data = {
        name: $("#contactName").val(),
        email: $("#contactEmail").val(),
        subject: $("#contactSubject").val(),
        message: $("#contactMessage").val()
    };
    var xhr = $.post("/handlers/contactForm.ashx", data)
        .complete(contact.subSuccess);
    return false;
  },
  subSuccess: function(e){
    pinfo = $("label.info");
    pinfo.fadeOut(50);
    if(e.responseText.indexOf("1:") > -1){
        pinfo.html(e.responseText.substring(2, e.responseText.length - 2));
    }
    else{
        pinfo.html("Sorry but an error occured, please try again shortly");
    }
    pinfo.fadeIn(500);
  }
}
var kwantoIcon = function(){
        var result = {};
        if($.browser.msie && parseInt($.browser.version) < 7)
            result.image = "resources/images/btn-gmapIcon.gif";
        else
            result.image = "resources/images/ui/btn-gmapIcon.png";

        result.iconsize = [43, 44];
        result.iconanchor = [12,46];
        result.infowindowanchor = [12, 0];
        return result;
    }();
var kwantoMaps = {
    init: function(){
        var daMap = $("#kwantoMap").gMap({ markers: kwantoMaps.marks,
                  zoom: 16 });
    },
    setLocation: function(e, me){
        $(".projectNav a, .projectNav li").removeClass("active");
        $(me).addClass("active").parent().addClass("active");
        $gmap.setCenter(e.gmarker.getPoint(), 16); 
     
        kwantoMaps.updateLocationDisplay(e);   
        return false;
    },
    updateLocationDisplay: function(e){
        var d = e.dataForDisplay;
        var result = "";
        if(d.streetAddress != ""){
            result += "<p><strong>Street Address</strong><br />" +
                d.streetAddress + "</p>";
        }
        if(d.postalAddress != ""){
            result += "<p><strong>Postal Address</strong><br />" +
                d.postalAddress + "</p>";
        }
        if(d.phone != ""){
            result += "<p><strong>Phone</strong><br />" +
                d.phone + "</p>";
        }
        if(d.fax != ""){
            result += "<p><strong>Fax</strong><br />" +
                d.fax + "</p>";
        }

        $(".locationAddress").html(result);
    }
}
