var info_script = "/cgi-bin/info.pl";

jQuery.preloadImages = function()
{
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

// don't remove preceeding ; (this is to fix a compression issue with jQuery)
;$.preloadImages("../images/loadingAnimation.gif");


function isdefined(variable)
{
//	return (typeof(eval(object)[variable]) != "undefined");
	return (typeof(window[variable]) != "undefined");
}


/* 
	Use this function instead of $.load
	This turns off caching of pages and politely waits until the page is loaded
*/
function load_into_div(div, url) {
	var content = load_val(url);
//	content = content.replace("<", "&lt;");
//	alert(content);
        $(div).html(content); // + "<br />" + url);
}

function load_val(url) { 
        var content = $.ajax({
                url: url, 
                cache: false,
                async: false
        }).responseText;
	return content;
}

function isInt(x) { 
   var y=parseInt(x); 
   if (isNaN(y)) return false; 
   return x==y && x.toString()==y.toString(); 
} 


function close_window() {
	$("#quizwindow").fadeOut(250);
	return false;
}

function start_quiz(id) {
	return require_auth_url(info_script+"?action=test&id="+encodeURIComponent(id), true);
//	window.open(info_script+"?action=test&id="+encodeURIComponent(id), "quizwindow");
/*
	load_into_div("#quizwindow-content", +"?action=test&id="+encodeURIComponent(id));
	disableSelection(document.getElementById("quizwindow"))
	$("#quizwindow").fadeIn(500);
*/
	return false;
}

function start_survey(id) {
	return require_auth_url(info_script+"?action=course_survey&id="+encodeURIComponent(id), true);
//	window.open(info_script+"?action=course_survey&id="+encodeURIComponent(id), "surveywindow");
/*
	load_into_div("#quizwindow-content", info_script+"?action=course_survey&id="+encodeURIComponent(id));
	disableSelection(document.getElementById("quizwindow"))
	$("#quizwindow").fadeIn(500);
*/
	return false;
}



function submit_form() { 
	var form = document.quizform;
	form.submit();
/*
	alert(form);
	var els = form.elements;
	var url = info_script+"?"; //ction="+encodeURIComponent(action);
	for(var i=0; i<els.length; i++)
	{
		if (els[i].type == "checkbox" || els[i].type == "radio") {
			if (els[i].checked) { 
				url += "&"+encodeURIComponent(els[i].name)+"="+encodeURIComponent(els[i].value);
			}
		} else { 
			url += "&"+encodeURIComponent(els[i].name)+"="+encodeURIComponent(els[i].value);
		}
	}
	load_into_div("#quizwindow-content", url);
	document.getElementById("quizwindow-content").scrollTop = 0;
	window.open(url, "quizwindow");
*/
	return false;
}

function is_logged_in() {
	var url = info_script+"?action=is_logged_in";
	return load_val(url) == "1";	
}
function is_admin() {
	var url = info_script+"?action=is_admin";
	return load_val(url) == "1";	
}

function require_auth_url(url, newwindow) {
	if (is_logged_in() || is_admin()) {
		if (newwindow) { 
			var window_name = "w"+Math.floor(Math.random()*10000000);
			window.open(url, window_name, "height=800,width=700,scrollbars=yes,status=no,toolbar=no,menubar=no,location=no,resizable=yes");
		} else { 
			window.location = url;
		}
	} else {
		alert('Please login using the module to the top left of the page,\nor click the "Create Account" link if you don\'t have an account yet.');
	}
	return false;
}


function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}






$(document).ready( function() {  
    // Capture right click  
    $("#quizwindow").rightClick( function(e) {  
        // Do something  
    });  
   
    // Capture right mouse down  
    $("#quizwindow").rightMouseDown( function(e) {  
        // Do something  
    });  

    // Capture right mouseup  
    $("#quizwindow").rightMouseUp( function(e) {  
        // Do something  
    });  

    // Disable context menu on an element  
    $("#quizwindow").noContext();  


	if ($("#login_form").length > 0) { 
		load_into_div("#login_form", "/login_form.php");
	}
    
    
    // Changes are made to the course filter
    $("#course_filter").change(function (e) {
    		var val = $(this).val();
    		// retrieve current (encoded) from_str, decode it, and then split it using '&' as delimiter
    		var from_str = $(this).attr('rel');
    		var from_str_decoded = decodeURIComponent(from_str);
    		var tokens = from_str_decoded.split('&');
    		
    		
    		// marker to indicate if we found it in the command-line already
    		var FoundAndSet = false;
    		
    		// check all the tokens (up to the first 50. anymore than that is not a legitimate connection)
    		for (i=0; i<tokens.length && i<50; i++) {
    			var vars = tokens[i].split('=');
    			if (vars[0] == "course_filter") {
    				tokens[i]="course_filter="+val;
    				FoundAndSet = true;
    				break;
    			}
    		}
    		// if course_filter wasn't previously set then let's add it in there
    		if (!FoundAndSet) { tokens[i] = "course_filter="+val; } 
    		
    		// rejoin the from_str
    		from_str_decoded = tokens.join('&');
    		
    		// redirect
    		var url = "premium_courses.php?"+from_str_decoded+"#content";
    		window.location = url;
    		return false;
    });
    
    
    $("#update-cart").click(function(e) {
    	var url = "checkout.php?update_cart";
    	if ($_GET['from']) { 
    		url += "&from="+encodeURIComponent($_GET['from']);
    	}
    	$("#cart input").each(function () {
    		var name = $(this).attr("name");
    		var c = $(this).attr("class");
    		var rel = $(this).attr("rel");
    		var val = $(this).val();
    		if (c == "remove") {
    			if ($(this).is(':checked')) {
    				url += "&remove"+encodeURIComponent(rel);
    			}
    		} else if (c == "qty") {
    			url += "&qty"+encodeURIComponent(rel)+"="+encodeURIComponent(val);
    		}
    	});

    	window.location = url;
    	
    	return false;
    });
    
    $("#checkout-button").click(function(e) {
    	// prevent double click
    	$(this).unbind('click');
    	$("#checkout-button-container").html('Processing... Please wait.');
    	$(this).hide();
    	
    	document.checkout.submit();
    	return false;
    });
    
    $(".view-receipt").click(function(e) {
    		var href = $(this).attr("href").substring(1);
    	 	require_auth_url("/popup_receipt.php?purchase_ids="+(href), true);
    		return false;
    });
}); 


$.ctrl = function(key, callback, args) {
    var isCtrl = false;
    $(document).keydown(function(e) {
        if(!args) args=[]; // IE barks when args is null

        if(e.ctrlKey) isCtrl = true;
	var kc = parseInt(key);
        if((!isNaN(kc) && kc > 0 && e.keyCode == key || isNaN(kc) && e.keyCode == key.charCodeAt(0)) && isCtrl) {
            callback.apply(this, args);
            return false;
        }
    }).keyup(function(e) {
        if(e.ctrlKey) isCtrl = false;
    });
};


//Read a page's GET URL variables and return them as an associative array.
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

var $_GET=getUrlVars();


//$.ctrl('A', function() { return false; });
//$.ctrl('C', function() { return false; });
//$.ctrl(45, function() { return false; });

