function ajaxResponse(js){jsonResponse(js); }

if (!CFG) var CFG = new Object();

function formSend(obj){
	var url = $(obj).attr('action');
	var fid = $(obj).attr('id');
	$('#'+fid+'_ajax').val(1);
	$('#'+fid+'_response').html('');
	$('#'+fid+'_message').html('');

	var vars = $(obj).serialize();
	vars += '&formajax=1&formid='+fid;
	$.post(url, vars, ajaxResponse, 'json');
}

function getPrice(id, n){
	if (id) var t = $('#'+id).text();
	else t = n;

	var p =  Number(t.substr(1));
	if (isNaN(p)) p =  Number(t.substr(2));
	if (isNaN(p)) return 0;
	return p;
}

function checkVis(el){
	var rel = $(el).attr('rel');

	if ($(el).is(':checked')){
		$(rel).show();
	} else {
		$(rel).hide();
	}
}

function txtUpdate(el){
	var rel = $(el).attr('rel');
	var id 	= $(el).attr('id');
	var max = $(el).attr('max');
	var str = $(el).val().replace(/\r|\n/mg, "<br/>");
	$(rel).html(str);

	if (max == 'auto'){
		if ($(rel).height() > $(el).height()){
			if ($('#'+id+'_alert').length == 0){
				$(el).after('<span class="alert" id="'+id+'_alert"></span>');
			}

			$('#'+id+'_alert').html('<b>WARNING</b>: Your message exceeds the allotted space.  Please shorten your message for proper display');
		} else {
			$('#'+id+'_alert').html('');
		}
	}
}


function checkValueAvailable(obj){
	var isInput = $(obj).is('input');
	if (isInput) var el = $(obj).attr('id');
	else var el = $(obj).attr('rel');
	console.log(el);
	var vars = new Object();
	vars.type = $('#'+el).attr('rel');
	vars.value = $('#'+el).val();
	$('#'+el+'_response').load(ROOT_URL+'ajax/checkvalue', vars);
}

function toggleChecks(obj){
	var rel = $(obj).attr('rel');

	if ($(obj).attr('checked')){
		$("input[rel='"+rel+"']").attr('checked', 'checked');
	} else {
		$("input[rel='"+rel+"']").removeAttr('checked');
	}
}

function toggleAllRow(b, el){
	var bool = (b == 1) ? true : false;
	$(el).closest('tr').find('input:checkbox').attr('checked', bool);
}

function setAllSliders(obj){
	var rel = $(obj).attr('rel');
	var val = $(obj).val();
	var l = val.substr(-1);
	var f = val.substr(0,1);
	type = 'num';

	if (l === '%') {
		type = 'pct';
		nn = val.replace('%','');
	}

	if (f === '$'){
		type = 'num';
		nn = val.substring(1);
	}

	switch(type){
		case 'pct':
			$("div.slider[rel='"+rel+"']").each(function(i){
				var max = $(this).attr("max");
				var v = Number(max)*(Number(nn)/50);
				$(this).slider("option", "max", max);
				$(this).slider("value", v);
			});
		break;
		case 'num':
			$("div.slider[rel='"+rel+"']").each(function(i){
				var max = $(this).attr("max");
				var v = Number(nn);
				$(this).slider("option", "max", max);
				$(this).slider("value", v);
			});
		break;
	}




}


function progressStart(id){
	var button = $('#'+id);

	CFG['interval_'+id] = window.setInterval(function(){
		var text = button.text();
			if (text.length < 3){
				button.text(text + '.');
			} else {
				button.text('');
			}
		}, 200);
}

function progressStop(id){
	window.clearInterval(CFG['interval_'+id]);
	var button = $('#'+id);
	button.text('');
}

function jsonResponse(obj){
	if (obj.update) AR_update(obj.update);
	if (obj.popup) AR_popup(obj.popup);
	if (obj.css) AR_css(obj.css);
	if (obj.attr) AR_attr(obj.attr);
	if (obj.eval) AR_eval(obj.eval);
	if (obj.remove) AR_remove(obj.remove);
}

function jsonMSG(id,msg){
	('#'+id+'_response').html('<div class="msg_success">'+msg+'</div>');
}

function jsonURL(obj, msg, form){
	var vars = new Object();
	var url = obj.toString();
	if (msg){
		$(obj).append('<div class="msg_success">'+msg+'</div>');
	}
	if (form){
		vars = $(obj).closest('form').serialize();
	}
	$.post(url, vars, ajaxResponse, 'json');
}

function jsonrURL(url){
	$.post(url, {}, ajaxResponse, 'json');
}

function jsonrURL(url){
	$.getJSON(url,ajaxResponse);
}

function ajaxCMD(obj){
	var tmp = obj.toString().split('/');
	var l = tmp.length;
	var call = tmp[l-1];
	var tmp2 = call.split('?');
	var cmd = tmp2[0];
	if (tmp2[1]){
		var tmp3 = tmp2[1].split('&');
		var vars = "'"+tmp3.join("','")+"'";
		eval(cmd+'('+vars+');');
	} else {
		eval(cmd+'();');
	}
}

function ajaxURL(obj){
	var isInput = $(obj).is('input');
	if (isInput){
		var href = $(obj).attr('href');
	} else {
		var href = obj.toString();
	}

	var tmp = href.toString().split('/');
	var l = tmp.length;
	var call = tmp[l-1];
	var tmp2 = call.split('?');
	var id = 0;
	if (tmp2.length > 1){
		var cmd = tmp2[0];
		var tmp3 = tmp2[1].split('&');
		var vars = "'"+tmp3.join("','")+"'";
		eval(cmd+'('+vars+');');
	} else {
		$.post(href, {id:id} , function(json){ ajaxResponse(json); }, "json");

	}
}

function ajaxLoad(obj, div){
	var vars = new Object();
	var url = obj.toString();
	$('#'+div).load(url);
}

function jsonTB(obj, divid){
	var url = obj.toString();
	if (!divid) divid = 'tmp_email';
	var h = 650;
	var w = 935;
	var title = '';
	if (!$('#'+divid).attr('id')){
		$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
	}

	$.post(url, {}, function(data){
		$('#'+divid).html(data.html);
		if (data.dim.h) h = data.dim.h;
		if (data.dim.w) w = data.dim.w;
		if (data.title) title = data.title;
		ajaxResponse(data);
		tb_show(title,'#TB_inline?height='+h+'&width='+w+'&inlineId='+divid);
	}, 'json');
}

function jsonPopup(obj){
	jsonTB(obj,'popupdiv');
}

function popupClose(){
		tb_remove();
}

function toggle_cchange(force){
	var bool = $('#cchange').css('display') == 'block' ? true : false;
	if (force) bool = force;
	if (bool){
		$('#cchange').hide();
		fadeMain(false);
	} else {
		fadeMain(true);
		$('#cchange').show().css({zIndex:999999});
	}
}

function fadeMain(bool){
	var pct = 80/100;

	var szx = $('#container').outerWidth();
	var szy = $('#container').outerHeight();
	var off = $('#header').outerHeight();
	var yy = szy-off;

	$('#coursefade').css({width:szx, height:yy,top:off,left:0});
	var cf = '#coursefade';
	if (bool){
		$(cf).fadeTo(1,pct).show();
	} else {
		$(cf).fadeTo(1,0).hide();
	}
}

function showModalWin(divid, data){
	try{
		//config settings
	if (!data) {
		alert('Invalid Response Received from the Server -- Please try your request again');
		return;
	}
		h = w = 0;
		var opts = { modal:true }
		if (data.dim.h) h = data.dim.h;
		if (data.dim.w) w = data.dim.w;

		if (h){
			opts.minHeight = h;
		}

		if (w){
			opts.minWidth = w;
			opts.width = w;
		}

		if (data.title) opts.title = data.title;

		if (!$('#'+divid).attr('id')){
			$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
		} else {
			$('#'+divid).css('display', 'block');
			$('#'+divid).css('visibility', 'visible');
			if (opts.title) $('#'+divid).dialog('option', 'title', opts.title);
		}

		$('#'+divid).html(data.html);
		$('#'+divid).dialog(opts);
		$('#'+divid).dialog('open');
		ajaxResponse(data);
	} catch(e){
		console.log(e);
	}
}

function jsonModalLink(el){
	var url = $(el).attr('href');
	jsonModal(url);
}

function jsonModal(url, divid){
	if (!divid) divid = 'ui_modal';
	var h = 650;
	var w = 935;
	if (!$('#'+divid).attr('id')){
		$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
	} else {
		$('#'+divid).css('display', 'block');
		$('#'+divid).css('visibility', 'visible');
	}


	$.post(url, {ajax:1}, function(data){ showModalWin(divid,data); }, 'json');
}

function hideEditPanel(divid, gridid){
	if (!divid) divid = 'editview';
	if (!gridid) gridid = 'gridview';

	$('#'+gridid).show();
	$('#'+divid).hide();
}

function hideMessage(el){
	$(el).closest('div.sysmessage').hide();
}

function showEditPanel(divid, gridid, data){
	try{
		if (!data) {
			alert('Invalid Response Received from the Server -- Please try your request again');
			return;
		}

		if (!$('#'+divid).attr('id')){
			$(document.body).append('<div id="'+divid+'" style="display:none"></div>');
		} else {
			$('#'+divid).css('display', 'block');
			$('#'+divid).css('visibility', 'visible');
		}

		if (data.title){
			$('#'+divid+'_title').html('<h2>'+data.title+'</h2>');
		}

		$('#'+divid+'_html').html(data.html);
		$('#'+gridid).hide();
		$(window).scrollTop(0);
		ajaxResponse(data);
	} catch(e){

	}
}
function hidePopup(id){
	$('#fade').fadeTo(1,0).hide();
	$('#popup').hide();
}

function sizePopup(id, h){
	if (!id) id = CFG.popid;

	$('#'+id).show().css({
		left:($('#fade').width() - $('#'+id).outerWidth())/2
	});

	if (h){
		var hh = ($(window).height() - $('#'+id).outerHeight())/2;
		$('#'+id).css({top: hh });
		if($.browser.safari){
			bodyelem = $("body")
		} else{
			bodyelem = $("html,body")
		}
		bodyelem.scrollTop(0);
	}
}

function embedSWF(id, url){
	var videoid = 'video'+id;
	var params = {};
	var player = 'flash/videoplayer.swf';

	var attributes = { align:'center'};

	params.menu = "false";
	//params.scale = 'noscale';
	params.wmode = "opaque";
	params.salign = 't';
	params.allowfullscreen = 'true';
	params.bgcolor = '#ffffff';

	attributes.align = 'left';

	if (url.fvars) {
		var fvars = url.fvars;
	} else {
		var fvars = { video_url: url.file,autoplay:1};
	}


	if (url.sourcetype == 'stream'){
		 fvars = {};
		 fvars.file = CFG.videosource+url.file;
		 fvars.streamer = CFG.videostreamer;
		 fvars.autostart = true;
		 fvars.stretching = 'uniform';
		 params.allowscriptaccess = 'always';
		 player = 'swf/jwplayer.swf';
	} else if (url.aws){
		 fvars = {};
		 fvars.file = url.file;
		 fvars.streamer = 'rtmp://s117pzvpc5w8sk.cloudfront.net/cfx/st';
		 fvars.autostart = true;
		 fvars.stretching = 'exactfit';
		 params.allowscriptaccess = 'always';
		 player = 'swf/jwplayer.swf';
	} else if(url.token) {
		 player = 'swf/jwplayer.swf';
		 fvars.file = url.file;
		 fvars.autostart = true;
		 fvars.stretching = 'uniform';
	} else {
		 player = 'swf/jwplayer.swf';
		 if (url.protected){
		     fvars.file = 'http://wpc.0093.edgecastcdn.net/000093/'+url.file;
		 } else {
		 	fvars.file = 'http://wpc.0093.edgecastcdn.net/000093/'+url.file+'.flv';
		 }
		 fvars.autostart = true;
		 fvars.stretching = 'uniform';
	}

	if (url.params){
		for(p in url.params){
			params[p] = url.params[p];
		}
	}

	swfobject.embedSWF(player, videoid, url.w, url.h, "9.0.0", "expressInstall.swf", fvars, params, attributes);
	$('#'+videoid+'_bb').css({width:url.w});
}

function showVideoPopup(el){
	var url = new Object();
	url.w = Number($(el).attr('w'))+0;
	url.h = Number($(el).attr('h'))+0;
	var ratio = $(el).attr('ratio');
	if (ratio){
		url.w = Math.round(url.w*ratio);
		url.h =  Math.round(url.h*ratio);
	}

	var authtoken = $(el).attr('authtoken');
	if (authtoken){
		url.file = $(el).attr('file')+'.flv?'+authtoken;
		url.protected = 1;
	} else {
		url.file = $(el).attr('file');
	}
	url.video = 1;
	url.title =  $(el).attr('title');
	url.type = 'video';
	$('#popup').hide();
	createPopup('popup', url);
}

function createPopup(id,obj){
	var vis =  ($('#'+id).css('display') == 'block') ? 1 : 0;
	var sy = $(window).scrollTop();
	var pad = 50;

	if (vis){
		$('#'+id).hide();
		$('#fade').fadeTo(1,0).hide();
	} else {
		var ww = $(window).width();
		var hh = $(document).height();
		var videoid = 'video'+id;

		var htm_head = '<div class="popbox">';
		var htm_head_error = '<div class="popbox errorbox">';
		var htm_close = '<img src="assets/close-default.png" class="popclose" onclick="hidePopup(\''+id+'\')" />';
		var htm_foot = '<div class="popactions"><input type="button" class="btn-sprite-sm btn-okay-sm" onclick="hidePopup(\''+id+'\')" /></div></div>';

		$('#fade').css({width:ww, height:hh,top:0,left:0});
		$('#fade').fadeTo(1,0.9).show();
		CFG.popid = id;

		if (obj){

			//custom attributes
			if (obj.w) htm_head = '<div class="popbox" style="width:'+obj.w+'px !important">';

			switch(obj.type){
				default:
				case 'html':
					var html = htm_head+htm_close+obj.html+htm_foot;
					$('#'+id+'_html').html(html);
					sizePopup(id, true);
				break;
				case 'div':
					var inner = $('#'+obj.divid).html();
					var html = htm_head+htm_close+inner+htm_foot;
					$('#'+id+'_html').html(html);
					sizePopup(id, true);
				break;
				case 'alert':
				case 'error':
					var tmp_head = (obj.type == 'error') ? htm_head_error : htm_head;
					if (obj.html){
						$('#'+id+'_html').html(tmp_head+htm_close+'<div id="'+id+'_inner">'+obj.html+'</div>'+htm_foot);
						sizePopup(id, true);
					} else {
						$('#'+id+'_html').html(tmp_head+htm_close+'<div id="'+id+'_inner"></div>'+htm_foot);
						$('#'+id+'_inner').load(obj.url, function(){ sizePopup(id, true); });
					}
				break;
				case 'load':
					$('#'+id+'_html').load(obj.url, function(){ sizePopup(id, true); });
				break;
				/*
				case 'video':
					if (! url.fvars) url.fvars = {};
					var title = (url.title) ? '<h2>'+url.title+'</h2><img src="img/tour/new/img_close.png" id="img_popup_return" onclick="togglePopup(\''+id+'\')" />' : '';
					if (url.auth){
						$('#'+id+'_html').html('<div id="'+videoid+'_bb" class="popupbox">'+title+'<div id="videopopup" style="width:'+url.w+'px"><div class="authform"><form id="'+videoid+'_authform" name="'+videoid+'_authform" action="'+url.auth+'" onsubmit="formSend(this);return false"><h3>Enter the assigned passcode to view this video.</h3><p>Please contact Andre James at andre@greencollegetour.com with any questions.</p><div id="'+videoid+'_authform_response"></div><input id="pw" name="pw" type="password"><input name="file" id="file" value="'+url.file+'" type="hidden"><input name="w" id="w" value="'+url.w+'" type="hidden"><input name="h" id="h" value="'+url.h+'" type="hidden"><div class="spacer10"></div><input type="submit" value="Submit" ></form></div></div></div>');
					} else {
						$('#'+id+'_html').html('<div id="'+videoid+'_bb" class="popupbox">'+title+'<div id="videopopup"></div></div>');
						embedSWF(id, url);
					}
					sizePopup(id);
				break;
				*/
				case 'video':
					if (! obj.fvars) obj.fvars = {};
					var title = (obj.title) ? '<h2>'+obj.title+'</h2>'+htm_close : htm_close;
					var tmp_head = '<div id="'+videoid+'_bb" class="popupbox popbox">';
					if (obj.auth){
						$('#'+id+'_html').html('<div id="'+videoid+'_bb" class="popupbox">'+title+'<div id="videopopup" style="width:'+obj.w+'px"><div class="authform"><form id="'+videoid+'_authform" name="'+videoid+'_authform" action="'+obj.auth+'" onsubmit="formSend(this);return false"><h3>Enter the assigned passcode to view this video.</h3><p>Please contact Andre James at andre@greencollegetour.com with any questions.</p><div id="'+videoid+'_authform_response"></div><input id="pw" name="pw" type="password"><input name="file" id="file" value="'+obj.file+'" type="hidden"><input name="w" id="w" value="'+obj.w+'" type="hidden"><input name="h" id="h" value="'+obj.h+'" type="hidden"><div class="spacer10"></div><input type="submit" value="Submit" ></form></div></div></div>');
					} else {
						$('#'+id+'_html').html(tmp_head+title+'<div id="videopopup"></div><div class="popactions">&nbsp;</div></div>');
						embedSWF(id, obj);
					}
					sizePopup(id);
				break;
				case 'img':
					$('#'+id+'_html').html('<div align="center"><img src="'+obj.img+'" /></div>');
					sizePopup(id, true);
				break;

			}
		}
		//$('#'+id+'_fade').css({width:ww, height:hh,top:0,left:0});
	}
}




function jsonEdit(url, divid, gridid){
	if (!divid) divid = 'editview';
	if (!gridid) gridid = 'gridview';
	$.post(url, {ajax:1}, function(data){ showEditPanel(divid, gridid, data); }, 'json');
}

function AR_remove(arr){
	for(i in arr) {
		var itm = arr[i];
		$('#'+itm.id).remove();
	}
}

function AR_css(arr){
	for(i in arr) {
		var itm = arr[i];
		if ($('#'+itm.id)){
			$('#'+itm.id).css(itm.k, itm.v);
		}
	}
}

function AR_attr(arr){
	for(i in arr) {
		var itm = arr[i];
		$(itm.sel).attr(itm.k, itm.v);
	}
}

function AR_popup(arr){
	for(i in arr) {
		var obj = arr[i];
		createPopup('popup', obj);
		return;
	}
}
function AR_update(arr){
	for(i in arr) {
		var itm = arr[i];
		if (itm.append){
			$('#'+itm.append).append(itm.html);
			continue;
		} else if (!$('#'+itm.id).attr('id')){
			parent = (itm.parent) ? '#'+item.parent : document.body;
			$(parent).append('<div id="'+itm.id+'"></div>');
			$('#'+itm.id).html(itm.html);
		} else {
			$('#'+itm.id).html(itm.html);
		}
		if (!itm.noshow) $('#'+itm.id).css('display', 'block');
		if (itm.fade) $('#'+itm.id).fadeOut(4000);
	}
}

function AR_eval(arr){
	for(i in arr) {
		var itm = arr[i];
		eval(itm+';');
	}
}

