﻿
var SITE_URL    = 'http://dev3.fish-dev.net';
var ROOT        = '/ontrack/website/site/v1';

function endsWith(sInput, sPatten) {
    return (sInput.match(sPatten + "$") == sPatten);
}

function validCaptcha(code)
{
	var ajax;
	var url = "/fishcaptcha/ajaxcheck.asp?code=" + code;
	if (window.XMLHttpRequest)
	{
		ajax = new XMLHttpRequest();
	}
	else
	{
		ajax = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	if(ajax)
	{
		ajax.open("GET", url, false);
		ajax.send(null);
		var result = ajax.responseText;
		//alert("[" + result + "]");
		if(result == "1")
			return true;
	}

	return false;
}

function validateField(form, id)
{
	var fieldObj = $("#" + form + " #" + id);
	fieldObj.removeClass("fielderror");
	
	if ((fieldObj.val() == "") || (fieldObj.val() == "Enter name here...") || (fieldObj.val() == "Enter email address here...") || (fieldObj.val() == "Enter telephone number here...") || (fieldObj.val() == "Type your query here..."))
	{
		fieldObj.addClass("fielderror");
		return false;
	}
	// special cases...
	if(id == "email")
	{
		// validate email using REGEX
		reg = new RegExp('\\w[\\w\\-\\.]*\\@\\w[\\w\\-]+(\\.[\\w\\-]{2,})+', 'g');
        if(!Boolean(reg.exec(fieldObj.val())))
		{
			fieldObj.addClass("fielderror");
			return false;
		}

	}
	else if(id == "code")
	{
		// validate Captcha using syncronous request
		if(!validCaptcha(fieldObj.val()))
		{
			fieldObj.addClass("fielderror");
			return false;
		}	
		
	}
	return true;
}

function validateForm()
{
	valid = validateField("contactform", "name") & validateField("contactform", "email") & validateField("contactform", "telephone") & validateField("contactform", "message")
	
	if(valid)
		return true;
	else
	{
		alert("Please ensure you complete all fields correctly");
		return false;
	}				
}

function loadContent(sURL, sDivId) {
    var bool_Return = false;
		
	//clearTimeout(objTimer);
	
	    
    add2History(sURL, sDivId);

	bool_Return = loadHTML(sURL, sDivId);
	//objTimer 	= setTimeout('doUpdate()', 50000);
	
	return bool_Return;
}

function loadHTML(sURL, sDivId){
    var objNow = new Date();
	var sURL_To_Load = sURL;
	
	/*if (sURL_To_Load.indexOf("ajax-content") == -1) {
        sURL_To_Load = ROOT + 'ajax-content/' + ((sURL_To_Load.indexOf(SITE_URL) > -1) ? sURL_To_Load.replace(SITE_URL + ROOT, '') : sURL_To_Load.replace(ROOT, ''));
    }*/
    
    sURL_To_Load = sURL_To_Load.replace("content/", "ajax-content/");
    
    sURL_To_Load += (!endsWith(sURL_To_Load, "/")) ? "/" : "";
    sURL_To_Load += "default.asp?requestTime=" + objNow.toString();

	$.ajax({
        url: sURL_To_Load,
        success: function(xhmlContent, textStatus, XMLHttpRequest) { handleResponse(sDivId, xhmlContent, textStatus, XMLHttpRequest); }
    });

	return false;
}

function postContent(objForm, sDivId) {
    var sURL_To_Load = objForm.action;
    var sData        = $(objForm).serialize();
    
    sURL_To_Load = sURL_To_Load.replace("content/", "ajax-content/");
    
    $.ajax({
        type: 'POST',
        url: sURL_To_Load,
        data: sData,
        success: function(xhmlContent, textStatus, XMLHttpRequest) { handleResponse(sDivId, xhmlContent, textStatus, XMLHttpRequest); }
    });
    
	return false;
}


function handleResponse(sDivId, xhmlContent, textStatus, XMLHttpRequest) { 

    $("#" + sDivId).html($(xhmlContent).children());
       
    $("#overlay-content-blackout").fadeIn('slow');
    $("#overlay-holder").fadeIn('slow');
   
    $("#" + sDivId).find("a").each(function () {
        var sHref = $(this).attr("href");
        sHref = ((sHref.indexOf(SITE_URL) > -1) ? sHref.replace(SITE_URL + ROOT, '') : sHref.replace(ROOT, ''));
        
		if ((sHref.indexOf("http:") == -1)) {
            if (!$(this).hasClass("noOverlay")) {
                $(this).click(function() {return loadContent(this.href, 'overlay-content');});
            } 
        }           
    });
    
    $('#overlay-holder .scroll-pane').jScrollPane({
        animateTo: true,
        scrollbarWidth: 10
    });
    
    tooltip.init();

    try {
        //JT_init();
        
        popupLoaded();

    } catch (e2) {
        //alert("error");
    }
}

function closeOverlay(sDivId){
    $("#overlay-content-blackout").hide();	//.fadeOut('fast');
    $("#overlay-holder").hide();	//.fadeOut('fast');
    $("#" + sDivId).html('<div style="text-align: center;padding-top: 150px; color: #000000;"><img src="' + ROOT + '/images/icons/wait_loader.gif" /><br />Loading...</div>');
    
    return false;
}


var aPageHistory    = new Array();
var sLastHash       = "";

function add2History(sURL, sDivId) {
    aPageHistory.push({url:sURL, div:sDivId});
    
    location.hash = sLastHash = "#" + aPageHistory.length;
}

function checkHistoryHash() {
    var iIndex  = -1;
    var sURL    = "";
    var sDivId  = "";
    
    if (location.hash != sLastHash) {
        sLastHash = location.hash;
        
        try{
            if (location.hash != "") {              
                iIndex  = parseInt(location.hash.replace('#', ''));

                sURL    = aPageHistory[iIndex-1].url;
                sDivId  = aPageHistory[iIndex-1].div;
                
                loadHTML(sURL, sDivId);
            } else {

                closeOverlay(aPageHistory[0].div);
            }
        } catch(e) {
            //donothing
        }
    }
}

