// JavaScript Document// JavaScript Document

$(document).ready(function() {

    // get current url
    $url = window.location.pathname;
    $url = $url.split("/");

    // breadcrumb bold
    $('#dnn_dnnBREADCRUMB_lblBreadCrumb a:last').css('font-weight', 'bold');

    // ie6 detect
    if (ie6()) {
        ie6layout();
    }

    // dnn hacks
    $('a[name]').hide();
    $('#dnn_ctr720_ContentPane td[nowrap]').hide();

    // layout adjustments
    $width = $('.hmain_menu_top ul').width();
    $('#dnn_SEARCHBOX').css('marginLeft', $width + "px");
    $inputWidth = 915 - ($width + 30);
    $('#dnn_ctr720_SearchInput_txtSearch, #dnn_ctr3370_SearchInput_txtSearch').width($inputWidth);


    //detect active menu	
    $href = $url[1].split(".");
    $href = $href[0];
    $href = "/" + $href + ".aspx";
    $('.hmain_menu_top a[href="' + $href + '"]').addClass('menu_active');

    // active tab for main menu
    $('.hmain_menu_top .menu_active').css({ 'background-position': '0 -34px', 'color': '#fff' });

    // active tab for main sub menu
    $('.hmain_menu_btm .menu_active').css({ 'background-position': '0 -27px', 'color': '#00539f' });
    $('.hmain_menu_btm .menu_active span').css({ 'background-position': 'right -27px' });

    // news tabs
    // tab1
    $('#tab1').click(function() {
        $('#newstabs').css('background-position', '0px 0px');
        $('#tab2 span, #tab1 span').removeClass('active_tab');
        $('#tab1 span').addClass('active_tab');
        $('#news_tab2').hide();
        $('#news_tab1').show();
    });
    // tab2
    $('#tab2').click(function() {
        $('#newstabs').css('background-position', '0px -25px');
        $('#tab1 span, #tab2 span').removeClass('active_tab');
        $('#tab2 span').addClass('active_tab');
        $('#news_tab1').hide();
        $('#news_tab2').show();
    });


    // custom select boxes
    if (!ie6()) {
        $('.styled_select').each(function() {
            $name = $(this).attr('name');
            createDropDown($name);
        });
        $(".dropdown dt a").click(function() {
            $thisID = $(this).parents('.dropdown').attr('id');
            $visible = $('#' + $thisID + ' dd ul:visible').length;
            $('.dropdown dd ul').hide();
            if ($visible) { $('#' + $thisID + ' dd ul').hide(); }
            else { $('#' + $thisID + ' dd ul').slideDown(); }
        });

        $('body').click(function() {
            $('.dropdown dd ul').hide();
        });

        $(".dropdown dd ul li a").click(function() {
            $thisID = $(this).parents('.dropdown').attr('id');
            $text = $(this).html();
            $('#' + $thisID + " dt a").html($text);
            $('#' + $thisID + " dd ul").show();
            $source = $("select[name='" + $thisID + "']");
            $source.val($(this).find("span.value").html());
        });
    } else {
        $('.styled_select').show();
    }

    // Main Page Slider

    $('.splashBttm .btn1').click(function() {
        $('.splashBody .spashSlider').clearQueue();
        $('.splashBttm .btn1').addClass('active');
        $('.splashBttm .btn2').removeClass('active');
        $('.splashBttm .btn3').removeClass('active');
        $('.splashBody .spashSlider').animate({
            left: '0'
        }, 500);
    });
    $('.splashBttm .btn2').click(function() {
        $('.splashBody .spashSlider').clearQueue();
        $('.splashBttm .btn1').removeClass('active');
        $('.splashBttm .btn2').addClass('active');
        $('.splashBttm .btn3').removeClass('active');
        $('.splashBody .spashSlider').animate({
            left: '-760'
        }, 500);
    });
    $('.splashBttm .btn3').click(function() {
        $('.splashBody .spashSlider').clearQueue();
        $('.splashBttm .btn1').removeClass('active');
        $('.splashBttm .btn2').removeClass('active');
        $('.splashBttm .btn3').addClass('active');
        $('.splashBody .spashSlider').animate({
            left: '-1520'
        }, 500);
    });

    // Manufacturers Slide Down
    $('.manufacturers>li>a').click(
	 function() {
	     $visible = $('+ div:visible', this).length;
	     if ($visible) {
	         $('.manufacturers>li>div').each(function() {
	             $(this).slideUp();
	         });
	     } else {
	         $('.manufacturers>li>a').each(function() {
	             //$(this).removeCss('background-position');									 
	             $(this).css('background-position', '-172px 0');
	         });
	         $('.manufacturers>li>div').each(function() {
	             $(this).slideUp();

	         });
	         $('+ div', this).slideDown();
	         $(this).css('background-position', '0 0');
	     }
	     return false;
	 });


    // flyout menus
    $('li.fly_link').hover(function() {
        $('ul', this).show();
    }, function() {
        $('ul', this).hide();
    });

    // manufacturers menu, stay open if on page
    if ($('.manufacturers .block_titles').length > 0) {
        $len = $url.length;
        if ($len > 2) {
            $url = $url[2].split(".");
            $page = $url[0];
            $('[alt="' + $page + '"]').css('background-position', '0px 0px');
            $('[alt="' + $page + '"]').next('div').slideDown();
        }
    }



});

jQuery.fn.extend
({
    removeCss: function(cssName) {
        return this.each(function() {
            var curDom = $(this);
            jQuery.grep(cssName.split(","),
                    function(cssToBeRemoved) {
                        curDom.css(cssToBeRemoved, '');
                    });
            return curDom;
        });
    }
});



function ie6()
{
	if ( $.browser.msie ) {
	  $iev = $.browser.version;
	  if (versiondetect($iev) == 6){ return true; }
	  else{ return false; }
	}
}

function ie6layout()
{
	hidebgs();
	$('#main_left>div').css('margin-left','6px');
	
}

function hidebgs()
{
	$('.box_med>div, .box_small>div ').css('background','none');
}

function versiondetect($iev)
{
	$version = $iev.substring(0,1);
	return $version;
}

function createDropDown($name){
	$source 	 = $("select[name='"+$name+"']");
	$classes	 = $("select[name='"+$name+"']").attr('class');
	
	// get classes			
	$classes		 = $classes.split(" ", 2);
	if($classes.length == 2){ 
		$dl_class = " " + $classes[1];
	}else{
		$dl_class = "";
	}
	
	$selected = $source.find("option[selected]");
	$options = $("option", $source);
	$dl_id	= "#"+$name;
	$('<dl id="'+$name+'" class="dropdown'+$dl_class+'"></dl>').insertAfter("select[name='"+$name+"']");
	//$("body").append('<dl id="'+name+'" class="dropdown'+dl_class+'"></dl>')
	
	$($dl_id).append('<dt><a>' + $selected.text() + 
		'<span class="value">' + $selected.val() + '</span></a></dt>')
	$($dl_id).append('<dd><ul></ul></dd>')

	$options.each(function(){
		$($dl_id + " dd ul").append('<li><a>' + 
			$(this).text() + '<span class="value">' + 
			$(this).val() + '</span></a></li>');

	});
}

/** FORMS **/
function validateEmail($email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   return reg.test($email); 
}

function contactUsForm(){
	$errors = "";
	if($('#txtaccountnumber').val().length < 3){
		$errors += "\r - Account Number is Required.";
	}
	if($('#txtcontactname').val().length < 3){
		$errors += "\r - Contact Name is Required.";
	}
	if($('#txtemailaddress').val().length < 3 || !validateEmail($('#txtemailaddress').val())){
		$errors += "\r - Email Address is Required or not valid.";
	}
	if($('#txtcomments').val().length < 3){
		$errors += "\r - Question or Comment is Required.";
	}
	if($errors != ""){	
		alert($errors);
		return false;
	}else{
		$('#__EVENTTARGET').remove();
		$('#__VIEWSTATE').remove();
		$('#__EVENTARGUMENT').remove();
		$newurl = $('#emailUsSendUrl').val();		
		$('#Form').attr('action', $newurl);
		$('#Form').submit();
	}
	
}

function activeForm(obj){
	if(obj.hasClass('form_cont')){
		$alt = obj.attr('alt');
	}else{
		$alt = obj.parents('.form_cont').attr('alt');	
	}
	$('#active_form').val($alt);
}


function formSwitch(){
	switch($('#active_form').val()){
			case "login": josso.loginclick(); return false; break;
			case "search": $('#Form').submit(); break;
			case "contact": contactUsForm(); return false; break;
			default: josso.loginclick(); break;
		}
	return false;
}


$(function(){	
	// active form
	$('.form_cont input, .form_cont select').focus(function(){
		activeForm($(this));
	});
	$('.form_cont').click(function(){
		activeForm($(this));
	});
		   
	// search box default text
    $('#dnn_ctr720_SearchInput_txtSearch').val('search');
    $("#dnn_ctr720_SearchInput_txtSearch").focus(function() {
		activeForm($(this));
        $searchinput = $('#dnn_ctr720_SearchInput_txtSearch').val();
        if ($searchinput == "search") { $('#dnn_ctr720_SearchInput_txtSearch').val(''); $('#dnn_ctr720_SearchInput_txtSearch').css({ 'color': '#085ba6', 'font-size': '11px' }); }
    });
    $("#dnn_ctr720_SearchInput_txtSearch").blur(function() {
        $searchinput = $('#dnn_ctr720_SearchInput_txtSearch').val();
        if ($searchinput.length < 1) { $('#dnn_ctr720_SearchInput_txtSearch').val('search'); $('#dnn_ctr720_SearchInput_txtSearch').css({ 'color': '#cbcbcb', 'font-size': '10px' }); }
    });

    // login redirect
	$(document).keypress(function(event){ 	   
		if(event.which == 13) {	
			$focused = $(document.activeElement).attr('name');
			if($focused != "txtcomments" && $focused != "dnn$ctr720$SearchInput$txtSearch"){
				event.preventDefault();
				formSwitch();
			}
		}
	});
    $('#abbconciseLogin').click(function() {	
       josso.loginclick(); 
    });

    // contact us form form post
    $('#emailUsSend').click(function() {
		contactUsForm();		
    });		   
});
    




/** JOSSO Login & Login UI **/
var loginUI = {			
		init : function(user_id, pass_id){ // input ids
			$(user_id+','+pass_id).unbind().bind({focus:loginUI.focusAlt, blur:loginUI.blurAlt});
			loginUI.blurAlt($(user_id));
			loginUI.blurAlt($(pass_id));
		},
		focusAlt: function(){ // uses alt tag to have default display
			activeForm($(this));
			obj = (arguments[0][0] != undefined)?arguments[0]:$(this);
			if(obj.val() == obj.attr('alt')){ obj.val(""); obj.css("color","#1671C5"); }
		},
		blurAlt: function(){ // uses alt tag to have default display
			obj = (arguments[0][0] != undefined)?arguments[0]:$(this);
			if(obj.val() == ""){ obj.val(obj.attr('alt')); obj.css("color","#D8DADB"); }			
		}			
	}
var josso = {		
	maxloops : 8, // number of loops aloud before timeout -- not used
	looptime : 2000, // milliseconds for each loop  --- not used
	loginwaittime: 6000, // milliseconds for login time wait
	init : function(success_id, success_id2, url_id,service_id,user_id,pass_id,btn_id, loading_id, error_id, cancel_id){ // input ids
		josso._cn = 0; // login loop start count
		josso.successurl = $(success_id).val(); // url to send to once log in is successful
		josso.successurl2 = $(success_id2).val(); // url to send to once log in is successful alt
		josso.url = $(url_id).val(); // url to josso login, with preset parameters
		josso.serviceurl = $(service_id).val(); // url to the session check service
		josso.user = $(user_id);
		josso.pass = $(pass_id);
		josso.btn = $(btn_id);
		josso.error = $(error_id); josso.error.hide();
		josso.loading = $(loading_id); josso.loading.hide();
		josso.btn.unbind().bind({click:josso.loginclick});
		josso.cancel = $(cancel_id);
		josso.cancel.unbind().bind({click: josso.loginLoadingEnd });
	},
	validate : function(){
		var valid = true;
		josso.error.hide();
		josso.pass.css({ border: "1px solid #D8DADB", color: "#1671C5" });josso.user.css({ border: "1px solid #D8DADB", color: "#1671C5" });
		if(josso.user.val() == josso.user.attr('alt') || !josso.user.val().length){ josso.user.css({ border: "1px solid red", color: "red"}); valid = false; }
		if(josso.pass.val() == josso.pass.attr('alt') || !josso.pass.val().length){ josso.pass.css({ border: "1px solid red", color: "red"}); valid = false; }
		return valid;
	},
	insertFrame : function(){
		var url = josso.url + "&josso_username="+josso.user.val()+"&josso_password="+josso.pass.val();
		if(document.getElementById('josso-loginframe')){ $('#josso-loginframe').attr('src',url); }
		else{ $('<iframe>',{"src": url, "id":"josso-loginframe" }).appendTo('body');}
	},
	loginLoadingStart: function(){
		josso.btn.hide(); $('#login_forgot').hide();
		josso.user.attr('disabled',true);josso.pass.attr('disabled',true);
		josso.loading.show();josso.cancel.show();			
	},
	loginLoadingEnd: function(){
		josso.loading.hide();josso.cancel.hide();
		josso.user.removeAttr('disabled');josso.pass.removeAttr('disabled');
		josso.btn.show();$('#login_forgot').show();
		if(josso.xhr){
			josso.xhr.abort();
		}
		
		if(josso.timeout){
			clearTimeout(josso.timeout);	
		}
	},		
	loginfailed: function(){ // login failed, it reached maximum tries
		josso.loginLoadingEnd(); josso.error.show(); return false;
	},
	authCheck: function(){
		josso.xhr = $.ajax({
			dataType: 'jsonp',
			data: {action: 'authcheck', u: josso.user.val(), p: josso.pass.val()},
			url: josso.serviceurl,
			success: josso.authResult
		});
	},
	authResult: function(data){	
		josso.auth_response = data;
		if(data.success == "1"){
			// pass: insert iframe & start session check
			josso.insertFrame(); 
			//josso.sessionCheck();
			/*josso.timeout = setTimeout(josso.sessionCheck, josso.looptime);	*/
			josso.timeout = setTimeout(josso.loginsuccess, josso.loginwaittime);
			
		}else{
			// failed
			josso.loginfailed();
			return false;
		}
		
	},
	sessionResult : function(data){
		josso._cn++;
		if(data.session == "1" ){
			clearTimeout(josso.timeout);
			josso.loginsuccess();
		}else if(josso._cn >= josso.maxloops){ // timeout
			clearTimeout(josso.timeout);
			josso._cn = 0;				
			josso.xhr.abort();
			josso.loginfailed();
		}
	},		
	loginstart: function(){
		josso.authCheck(); // chained methods with async calls
	},
	loginsuccess: function(){
		// redirect page to success url
		josso.cancel.css("visibility","hidden");
		josso.loading.hide();$('#login_redirect').show();
		window.location = (josso.auth_response.type == 2)?josso.successurl2:josso.successurl;
		
	},
	loginclick: function(){
		$('#active_form').val('login');
		if(!josso.validate()){ return false; } // validate the inputs
		josso.loginLoadingStart(); // start loader
		josso.loginstart(); // start login process
	}		
	
}

$(function(){	   
	loginUI.init('#login_uname','#login_pass'); // initialize the login ui
	josso.init('#successurl','#successurl_alt','#jossourl','#serviceurl','#login_uname','#login_pass','#abbconciseLogin', '#login_loading', '#login_error', '#logincancel'); // initialize josso login methods
});
