﻿/*********************/
/* Main JS Functions */
/*********************/

//Init
function init(){

    //Element height
    //alert('init!');
    var iMid = $('#middle-col').height();
    //alert(iMid);
    if($.browser.msie) {
        iMid -= 52;
    }else{
        iMid -= 4;
    }
    $('#left-col-inner').css('min-height', iMid+'px');
    //>
    
    //Curve corners
    var blRunCorners = true;
    if ($.browser.msie) {
        if ($.browser.version == '6.0') {
            blRunCorners = false;
        }
    }
    //
    if (blRunCorners) {
        $.jcorners("#left-col-inner",{radius:10});
    }
    //>
    
    //AJAX Error
    $().ajaxError(function(event, request, settings){
        alert('Error requesting page: ' + settings.url );
    });
    //>
    
    //Form input focus
    $("input[type=text],input[type=password],textarea").bind("focus", function(){
        $(this).addClass('tbFocus');
    });
    //Form input blur
    $("input[type=text], input[type=password],textarea").bind("blur", function(){
        $(this).removeClass('tbFocus');
    });
    //>
    
}
//
//Set style
function setStyle(sElementId, sStyleAtt, sStyleVal){
	$("#"+sElementId).css(sStyleAtt, sStyleVal);
}
//
//Validate Email Address
function validateEmailAddress(sEmailField){
	var emailstring = $("#"+sEmailField).val();
	var ampIndex = emailstring.indexOf("@");
	var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
	var dotIndex = afterAmp.indexOf(".");
	dotIndex = dotIndex + ampIndex + 1;
	afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
	var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
	var beforeAmp = emailstring.substring(0,(ampIndex));
	var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
	if ((emailstring.indexOf("@") != "-1") &&
		(emailstring.length > 5) &&
		(afterAmp.length > 0) &&
		(beforeAmp.length > 1) &&
		(afterDot.length > 1) &&
		(email_regex.test(emailstring)) ) {
		setStyle(sEmailField, "background-color", "#FFF");
		return true;
	} else {
		setStyle(sEmailField, "background-color", "#FFCCCC");
		return false;
	}
}
//
//Validate Text Field
function validateTextField(sFormField){
	if($("#"+sFormField).val().length > 0){
		setStyle(sFormField, "background-color", "#FFF");
		return true;
	}else{
		setStyle(sFormField, "background-color", "#FFCCCC");
		return false;
	}
}
//
//Validate Form
function vailidateForm(reqFields, reqEmailField){
    //var
    var blFirstError = true;
	var valid = false;
	//var reqFields = ["tbName", "tbEmail"];
	var sErrorType = null;
	var sTextError = "Please complete all required fields.";
	var sEmailError = "Please enter a valid e-mail address.";
	//
	//iterate form field
	$.each( $(reqFields), function(i, n){
	  
        //validate
        valid = validateTextField(n);
        
        //Focus 1st error
        if((valid == false) && (blFirstError == true)){
            $("#"+n).focus();
            blFirstError = false;
            sErrorType = "text";
        }
        
	});
	// /iterate form field >
	//
	if(valid == true){
		//validate email field
		valid = validateEmailAddress(reqEmailField);
		if(valid == false){
		    sErrorType = "email";
		}
	}
	//
	//Show error message?
	if(valid == false){
	    var sError = null;
	    if(sErrorType == "text"){
	        sError = sTextError;
		}else if(sErrorType == "email"){
		    sError = sEmailError;
		}
	    //Error!
		$("#FormStatus").empty();
		$("#FormStatus").attr("class", "form-error");
		$("#FormStatus").append(sError);
		$("#FormStatus").show();
	}else{
	    //Success!
		$("#FormStatus").empty();
		$("#FormStatus").attr("class", "form-success");
		$("#FormStatus").append("Processing...");
		$("#FormStatus").show();
	}
	//valid?
	return valid;
}
//
//Handle Form Sent Response
function handleFormSentResponse(responseText, statusText, sFormSentMessage){
	var sReText = responseText;
	if(sReText == "SENT"){
		$("#FormStatus").empty();
		$("#FormStatus").attr("class", "form-success");
		$("#FormStatus").append(sFormSentMessage);
		$("#FormStatus").show();
	}else{
        $("#FormStatus").empty();
        $("#FormStatus").attr("class", "form-error");
        $("#FormStatus").append("Error: sending form, please retry.");
        $("#FormStatus").show();
	}
}
//
//Initialize Lightbox
function initializeLightbox(){
	$('a.lightbox').lightBox({
		imageLoading: '/images/lightbox/lightbox-ico-loading.gif',
		imageBtnClose: '/images/lightbox/lightbox-btn-close.gif',
		imageBtnPrev: '/images/lightbox/lightbox-btn-prev.gif',
		imageBtnNext: '/images/lightbox/lightbox-btn-next.gif'
	});
}
//-->
