﻿function creat_Object()
{ 
var xmlhttp;
// This if condition for Firefox and Opera Browsers 
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
{
try 
{
xmlhttp = new XMLHttpRequest();
} 
catch (e) 
{
alert("Your browser is not supporting XMLHTTPRequest");
xmlhttp = false;
}
}
// else condition for ie
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}

var request = creat_Object();
var request2 = creat_Object();
var request3 = creat_Object();
var request4 = creat_Object();
var gSessionID = '';
var gCurrentSortOrder = '';
var gPageNumber = '1';
var gClickType = '';

   
//Called when user clicks selection
function loadProducts(SessionID,SortOrder)
{
    document.body.style.cursor = 'wait';
    var igo = document.getElementById("igo");
    igo.className = "load";
    
    var CartTag = '';
    for (var i=0; i < document.forms["aspnetForm"].opinions.length; i++)
    {
    if (document.forms["aspnetForm"].opinions[i].checked) {
       CartTag = CartTag + document.forms["aspnetForm"].opinions[i].value + ',';
    }  
    }
    
    gSessionID = SessionID;
    gCurrentSortOrder = SortOrder;

    request2.open("GET", '_productListing.aspx?SID=' + SessionID + '&SortOrder=' + SortOrder + '&CartTag=' + CartTag + '&random=' + generateGuid()); 
    request2.onreadystatechange = server_interaction_product;
    request2.send('');
}

//Called when user re-sorts products
function sortProducts(SessionID)
{
    document.body.style.cursor = 'wait';
    
    var hfClickType = document.getElementById("ClickType");
    if (hfClickType != null) {
      gClickType = hfClickType.value;  
    }
    
    var sel = document.getElementById("selSortOrder");
    var ToolGroupSortID = sel.options[sel.selectedIndex].value;

    request2.open("GET", '_productListing.aspx?SID=' + SessionID + '&ToolGroupSortID=' + ToolGroupSortID + '&random=' + generateGuid()); 
    request2.onreadystatechange = server_interaction_product;
    request2.send('');
}

//Load Products and update Sentence
function server_interaction_product()
{
	if(request2.readyState == 4)
	{
	    var answer = request2.responseText;
	    document.getElementById('results').innerHTML = answer;
	    
	    request3.open("GET", '_sentence.aspx?SID=' + gSessionID + '&SortOrder=' + gCurrentSortOrder + '&random=' + generateGuid()); 
        request3.onreadystatechange = server_interaction_sentence;
        request3.send('');
        
	    var MatchingCount = document.getElementById("MatchingCount").value;
	     
	    request4.open("GET", '_paging.aspx?SID=' + gSessionID + '&PageNumber=1&MatchingCount=' + MatchingCount + '&random=' + generateGuid()); 
        request4.onreadystatechange = server_interaction_page;
        request4.send('');      
            
        if (gClickType != 'Finish') {
            var igo = document.getElementById("igo");
            igo.className = "";
        }
	}
}

//Get Next Page of products and update paging section
function pageProducts(SessionID,PageNumber)
{
    document.body.style.cursor = 'wait';
    
    var sel = document.getElementById("selSortOrder");
    var ToolGroupSortID = sel.options[sel.selectedIndex].value;
    
    gPageNumber = PageNumber;

    request2.open("GET", '_productListing.aspx?SID=' + SessionID + '&ToolGroupSortID=' + ToolGroupSortID + '&PageNumber=' + PageNumber + '&random=' + generateGuid()); 
    request2.onreadystatechange = server_interaction_product_page;
    request2.send('');
    
}

function server_interaction_product_page()
{
	if(request2.readyState == 4)
	{
	    var answer = request2.responseText;
	    document.getElementById('results').innerHTML = answer;
	    
	    var MatchingCount = document.getElementById("MatchingCount").value;
	     
	    request4.open("GET", '_paging.aspx?SID=' + gSessionID + '&PageNumber=' + gPageNumber + '&MatchingCount=' + MatchingCount + '&random=' + generateGuid()); 
        request4.onreadystatechange = server_interaction_page;
        request4.send('');
	}
}


function server_interaction_page()
{
	if(request4.readyState == 4)
	{
	    var answer = request4.responseText;
	    document.getElementById('pagination').innerHTML = answer;
	    
	    document.body.style.cursor = 'default';
	    scroll(0,0);
	}
}


//Update header for next question
function nextQuestion(SessionID,CurrentSortOrder,NextSortOrder,ClickType)
{    
    document.body.style.cursor = 'wait';
    
    request.open("GET", '_toyHeader.aspx?SID=' + SessionID + '&CurrentSortOrder=' + CurrentSortOrder + '&NextSortOrder=' + NextSortOrder + '&ClickType=' + ClickType + '&random=' + generateGuid()); 
    request.onreadystatechange = server_interaction_step;
    request.send('');
    
    gClickType = ClickType;
    
    
    var igo = document.getElementById("igo");
    var paging = document.getElementById("pagination");
    
    if (ClickType == 'Finish') {
        igo.className = "final";
        paging.className = "final";
        
        //Update products to only show top 96
        request2.open("GET", '_productListing.aspx?SID=' + SessionID + '&ToolGroupSortID=0&PageNumber=0&ClickType=Finish&SortOrder=' + CurrentSortOrder + '&random=' + generateGuid()); 
        request2.onreadystatechange = server_interaction_product_page;
        request2.send('');
        
    } else {
        igo.className = "";
        paging.className = "";
    }
}

function server_interaction_step()
{
	if(request.readyState == 4)
	{
	    var answer = request.responseText;
	    document.getElementById('container').innerHTML = answer;
	    
	    //Update Checkboxes / Radio Buttons
	    $(function(){
	        $('input').customInput();
        });
	   
	   //Update flash body text
	    sIFR.replace(romy, {
          selector: 'div#text'
          ,css: [
	        '.sIFR-root { color: #4b4b4b; font-size:30px; }'
	        ,'a { text-decoration: none; }'
	        ,'a:link { color: #1a75cf; }'
	        ,'a:hover {  }'
	        ,'h5 { color: #c81313; }'
	        ,'h4 { color: #003896; }'
          ]
          ,wmode: 'transparent'
        }); 
               
        document.body.style.cursor = 'default';
	}
}

function server_interaction_sentence()
{
	if(request3.readyState == 4)
	{
	    var answer = request3.responseText;
	    document.getElementById('textcontainer').innerHTML = answer;
	    
	    //Update flash body text
	    sIFR.replace(romy, {
          selector: 'div#text'
          ,css: [
	        '.sIFR-root { color: #4b4b4b; font-size:30px; }'
	        ,'a { text-decoration: none; }'
	        ,'a:link { color: #1a75cf; }'
	        ,'a:hover {  }'
	        ,'h5 { color: #c81313; }'
          ]
          ,wmode: 'transparent'
        });
        
       
        document.body.style.cursor = 'default';
	}
}

function checkSession(SessionID) {
    
    gSessionID = SessionID;
    
    request.open("GET", '_checkCart.ashx?SID=' + SessionID + '&random=' + generateGuid()); 
    request.onreadystatechange = server_interaction_session;
    request.send('');
}

function server_interaction_session()
{
	if(request.readyState == 4)
	{
	    var answer = request.responseText;
	  
	    if (answer != 0) {
	        document.body.style.cursor = 'wait';
	        var igo = document.getElementById("igo");
            igo.className = "load";
	        //alert('Reloading');
            nextQuestion(gSessionID,0,0,'');
            pageProducts(gSessionID,1);
	    }
	}
}


function checkEnter(e, SessionID, CurrentSortOrder, NextSortOrder){ //e is event object passed from function invocation
var characterCode //literal character code will be stored in this variable

if(e && e.which){ //if which property of event object is supported (NN4)
e = e
characterCode = e.which //character code is contained in NN4's which property
}
else{
e = event
characterCode = e.keyCode //character code is contained in IE's keyCode property
}

if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
    //alert('submit me');
    nextQuestion(SessionID,CurrentSortOrder,NextSortOrder,'Next');
return false
}
else{
return true
}

}


function generateGuid()
{
var result, i, j;
result = '';
for(j=0; j<32; j++)
{
if( j == 8 || j == 12|| j == 16|| j == 20)
result = result + '-';
i = Math.floor(Math.random()*16).toString(16).toUpperCase();
result = result + i;
}
return result
} 



function popupHelp(C,B,A,E,G){
var G=G&&G=="no"?"no":"yes";
var D=(screen.width-A)/5;
var F=(screen.height-E)/5;
winprops="height="+E+",width="+A+",top="+F+",left="+D+",scrollbars="+G+",resizable=yes";
win=window.open(C,B,winprops);
if(parseInt(navigator.appVersion)>=4){
    win.window.focus();
}
}

