var error = {
	report: function(e){
		if(window.console) console.log(e);
	}
}

var addthis_config = {
	ui_offset_top: 10,
	ui_offset_left: -6
};

function backgroundPosition(){
	/*
	if(window.console) console.log({
		'body': $(document.body).height(),
		'window': $(window).height(),
		'document': $(document).height()
	});
	*/
	if($(document.body).height() <= $(window).height()){
		$("#background").css({
			"position":"absolute",
			"bottom":"0px"
		});
	}else{
		$("#background").css({
			"position":"relative"
		});
	}
}

function isEmailAddr(email) {
  	var result = false
 	var theStr = new String(email)
  	var index = theStr.indexOf("@");
  	if (index > 0) {
		var pindex = theStr.indexOf(".",index);
    	if ((pindex > index+1) && (theStr.length > pindex+1))
			result = true;
  	}
	return result;
}

function valthumb(thisform) {
	upfile = thisform.upfile.value;
	if (upfile == "") {
		alert("Please select a file to upload.");
		thisform.upfile.focus();
		return false;
	}
	if (upfile != "") {
		ext = upfile.substr(upfile.lastIndexOf(".")).toLowerCase();
		if (ext != ".jpg" && ext != ".gif"){
			alert("Invalid file format. File must be .jpg or .gif.")
			thisform.upfile.focus();
			return false;
		}
	}
}

function strCleaner(string){
	string = string.replace(/[^a-z,A-Z,0-9]/gi,"");
	document.update_display_name.display_name.value = string;
}

function delete_response(URL) {
	if (confirm('Are you sure you want to delete this response?\nAll additional files created within this response\nwill also be deleted.')) {
  		window.location = URL; 
	}
}

var scheduleSelect = function(dateText, stype){
	window.location = "/wgte/schedule.asp?airdate=" + dateText + "&stype=" + stype;
};
var playlistSelect = function(dateText, stype){
	var mm = dateText.substr(0,2), dd = dateText.substr(3,2), yy = dateText.substr(6,4);
	window.location = "/wgte/playlist.asp?themonth="+mm+"&theday="+dd+"&theyear="+yy+"&view=day";
};

var loadingBox = function(){
	return $('<div/>').addClass('loadingBox');
};
loadingBox.remove = function(elm){
	$(elm).find('.loadingBox').each(function(key,value){
		$(value).remove();
	});
};

var rating = function(ui, type, value){
	if(typeof ui == 'string') ui = $(ui).data("stars");
	if (typeof window.userid != 'undefined') {
		$.ajax({
			url: '/wgte/base/saveRating.asp',
			type: 'post',
			data: {
				userid: window.userid,
				itemid: window.itemid,
				rating: value
			},
			success: function(data){
				data = Number(data);
				$(ui.element).select(data);
				$(ui.element).parent('.ratingWrapper').find('.myRating').html("(Your Rating: " + value + ")").stop().css("opacity", 1).fadeIn(30);
			}
		});
	}
	else {
		login_popup('rating(\'#' + $(ui.element).attr('id') + '\',\'' + type + '\',\'' + value + '\')');
	}
};

var addTag = function(value,admin){
	tag = $(value).val();
	if (typeof window.userid != 'undefined') {
		$.ajax({
			url: '/kstream/base/saveTag.asp',
			type: 'post',
			data: {
				userid: window.userid,
				itemid: window.itemid,
				tag: tag
			},
			success: function(data){
				$(value).val('');
				$('.taglist').html('');	
				for(var i in data.tags){
					if(i>0) $('.taglist').append($('<br/>'));
					var span = $('<span/>');
					if (admin) {
						var link = $('<a/>').attr({
							'href': 'javascript:deletetag(' + data.tagid[i] + ',' + window.itemid + ');',
							'title': 'DELETE TAG',
							'style': 'float:right;'
						});
						link.append($('<img/>').attr({'src':'/kstream/images/closedelete.gif'}));
						span.append(link);
					}
					span.append($('<a/>').attr('href','/kstream/search.asp?keyword='+data.tags[i]).text(data.tags[i]));
					$('.taglist').append(span);
				}
			},
			dataType: 'json'
		});
	}
	else {
		login_popup('addTag(\'' + value + '\')');
	}
};

var login_popup = function(runThis){
	login_popup.runThis = runThis;
	api = $("#ajaxSignIn").overlay();
	api.load();
};
login_popup.run = function(){
	$.ajax({
		url: '/kstream/login_ajax.asp',
		type: 'post',
		data: {
			email: $('#emailAjax').val(),
			password: $('#passwordAjax').val()
		},
		success: function(data){
			window.userid = Number(data.userid);
			window.firstName = data.firstName;
			window.displayName = data.displayName;
			window.userAdmin = data.userAdmin;
			
			api = $("#ajaxSignIn").overlay();
			api.close();
			/*
			if(typeof login_popup.runThis == 'function')
				login_popup.runThis();
			else
			*/
			eval(login_popup.runThis);
			login_popup.clear();
			
			login_popup.account();
		},
		error: function(){
			$('#emailAjax').css({'background-color':'#ffcccc'});
			$('#passwordAjax').css({'background-color':'#ffcccc'});
		},
		dataType: 'json'
	});
};
login_popup.clear = function(){
	login_popup.runThis = '';
}
login_popup.account = function(){
	var appendItem, 
		title = $('<div/>').addClass('title').text('Welcome ' + window.firstName + '!'), 
		pipe = $('<div/>').addClass('pipe').text('|'),
		button = $('<a/>').addClass('textButton'),
		text = $('<div/>').addClass('text'),
		shadow = $('<div/>').addClass('shadow std'),
		accountBar = $('#account');
		
	button.append(text);
	button.append(shadow);

	accountBar.html('');
	accountBar.append(title);
	
	appendItem = pipe;
	accountBar.append(appendItem.attr('id','loggedPipe'));
	
	appendItem = button;
	appendItem.attr({
		'href': '/kstream/myaccount/',
		'id': 'myaccount'
	});
	appendItem.find('.text').text('My Account');
	appendItem.find('.shadow').html('My&nbsp;Account');
	accountBar.append(appendItem);
	
	pipe = $('<div/>').addClass('pipe').text('|');
	button = $('<a/>').addClass('textButton');
	text = $('<div/>').addClass('text');
	shadow = $('<div/>').addClass('shadow std');
	button.append(text);
	button.append(shadow);
	
	appendItem = pipe;
	accountBar.append(appendItem.attr('id','loggedPipe'));
	
	appendItem = button;
	appendItem.attr({
		'href': '/kstream/logout.asp',
		'id': 'signout'
	});
	appendItem.find('.text').text('Sign Out');
	appendItem.find('.shadow').html('Sign&nbsp;Out');
	accountBar.append(appendItem);
	
	if(typeof $C != 'undefined') $C.setMonkey();
}

var toggle_description = function(){
	if($('#pageContent').css('display')=='none')
		$('#pageContent').show();
	else
		$('#pageContent').hide();
};

var schedulePopUp = function(options){
	var options = options||false, popup = $('#schedulePopUp'), link = false;
	/*
	if(window.console) console.log({
		'options': options,
		'popup': popup,
		'link': link
	});
	*/
	if(options&&popup){
		$.each(options,function(key, value){
			switch(key){
				case 'serURL':
					if(value!='') link = $('<a/>').attr({'href':value}).html(' [... more info]');
					break;
				case 'episodeTitle':
					if(value!='Episode:') popup.find('.'+key).html(value);
					break;
				default:
					//if(window.console) console.log([key,value]);
					popup.find('.'+key).html(value);
			}
			if(link) popup.find('.showTitle').append(link);
		});
		var api = $(".showHandle").overlay();
		api.load();
	}
}

var iframeLoad = function(e){};

var dropdown = function(menu){
	if(menu != dropdown.menu) dropdown.closeQuick();
	dropdown.menu = menu;
	$('.'+dropdown.menu).mousemove(dropdown.open);
	dropdown.open();
};
dropdown.open = function(e){
	$('.'+dropdown.menu).show();
	if(dropdown.timer) clearInterval(dropdown.timer);
	dropdown.timer = setInterval(dropdown.closeQuick,3000);
}
dropdown.close = function(){
	$('.'+dropdown.menu).fadeOut(500);
	clearInterval(dropdown.timer);
};
dropdown.closeQuick = function(){
	$('.'+dropdown.menu).hide();
	clearInterval(dropdown.timer);
};
dropdown.timer = false;
dropdown.menu = false;

var mouse = {
	x: 0,
	y: 0
};

var mobileDevice = function(type){
	var inArr = function(value,arr){
		var result = false;
		for(var val in arr){
			if (value == arr[val]) {
				result = true;
				break;
			}
		}
		return result;
	}
	var checks = {
		'iPhone':navigator.userAgent.match(/iPhone/i)?true:false,
		'iPod':navigator.userAgent.match(/iPod/i)?true:false,
		'iPad':navigator.userAgent.match(/iPad/i)?true:false,
		'Android':navigator.userAgent.match(/Android/i)?true:false,
		'BlackBerry':navigator.userAgent.match(/BlackBerry/i)?true:false,
		'Palm':navigator.userAgent.match(/Palm/i)?true:false
	};
	return !type?inArr(true,checks):checks[type];
}

$(document).ready(function(){
	
	// Shadowbox Init
	Shadowbox.init({
		players: ["img", "flv", "html", "iframe"],
		onClose: function(){
			sb.halt = false;
		}
	},
	function(){
		$('.splashScreen').each(function(key, value){
			if (value && readCookie('splashScreen') != 'pledge') {
				createCookie('splashScreen', 'pledge', 10800);
				if (!$(value).attr('id')) 
					$(value).attr('id', 'splash_' + Math.floor(Math.random() * 1000));
				var options = $(value).attr('rel'), singles = {}, api = {}, title = 'SplashScreen', media, contentType = 'flv', link = false, open = false;
				if ($(value).attr('rel')) {
					var attrs = $(value).attr('rel').split(';');
					for (var n in attrs) {
						var single_attr = attrs[n].split('::');
						switch (single_attr[0]) {
							case 'title':
								title = single_attr[1];
								break;
							case 'media':
								media = single_attr[1];
								break;
							case 'type':
								contentType = single_attr[1];
								break;
							case 'link':
								link = single_attr[1];
								break;
							default:
								break;
						}
					}
				}
				if (media == 'innerHTML') {
					media = $(value).html();
					contentType = 'html';
				}
				if (link) {
					open = function(obj){
						//if (window.console) 
							//console.log(obj);
						$('#sb-content').css('cursor', 'pointer');
						$('#sb-content').attr('rel', obj.link);
						$('#sb-content').click(function(){
							window.location = $(this).attr('rel');
						});
					}
				}
				sb(title, media, contentType, false, false, open, link);
			}
		});
	});
	// Shadowbox Off-Call
	sb = function(name,media,contentType){
		if(typeof arguments[0] != 'undefined' && typeof arguments[1] != 'undefined'){
			var contentType = typeof arguments[2]!='undefined' || arguments[2] == false?arguments[2]:'flv';
			var height = typeof arguments[3]!='undefined' && arguments[3] != false?arguments[3]:contentType=='img'?false:'270';
			var width = typeof arguments[4]!='undefined' && arguments[4] != false?arguments[4]:contentType=='img'?false:'480';
			var open = typeof arguments[5]!='undefined' && arguments[5] != false?arguments[5]:false;
			var link = typeof arguments[6]!='undefined' && arguments[6] != false?arguments[6]:false;
			if (typeof Shadowbox != 'undefined') {
				Shadowbox.open({
					content: media,
					title: name,
					player: contentType,
					'width': width,
					'height': height,
					'link': link,
					options: {
						onFinish: open
					}
				});
			}else{
				setTimeout("sb('"+name+"','"+media+"','"+contentType+"','"+height+"','"+width+"')",100);
			}
		    sb.halt = true;
		}
	};
	sb.halt = false;
	$('.datepicker').each(function(key, value){
		var css_config = {}, config = {'dateFormat': 'mm/dd/yy','file':false};
		if(!$(value).attr('id')) $(value).attr('id','datepicker_'+Math.floor(Math.random()*1000));
		if($(value).attr('rel')){
			var attrs = $(value).attr('rel').split(';');
			for(var n in attrs){
				var single_attr = attrs[n].split('=');
				switch(single_attr[0]){
					case 'defaultDate':
						config[single_attr[0]] = new Date(single_attr[1]);
						break;
					case 'stype':
						$(value).attr('stype', single_attr[1]);
						break;
					case 'height':
					case 'width':
						css_config[single_attr[0]] = Number(single_attr[1])==NaN||single_attr[1].substr(single_attr[1].length-1,1)=='%'?single_attr[1]:single_attr[1]+'px';
					default:
						config[single_attr[0]] = single_attr[1];
						break;
				}
			}
		}
		if(!config['file']){
			config['onSelect'] = function(dateText, inst){scheduleSelect(dateText, $('#'+inst.id).attr('stype'))};
		}else{
			config['onSelect'] = function(dateText, inst){playlistSelect(dateText, $('#'+inst.id).attr('stype'))};
		}
		$(value).css(css_config);
		var guid = $(value).attr('id');
		$('#'+guid).datepicker(config);
	});
	$('.flashembed').each(function(key, value){
		var source = ""
		var css_config = {};
		var config = {};
		var flashvars = {};
		if(!$(value).attr('id')) $(value).attr('id','flash_'+Math.floor(Math.random()*1000));
		if($(value).attr('rel')){
			var attrs = $(value).attr('rel').split(';');
			for(var n in attrs){
				var single_attr = attrs[n].split('=');
				switch(single_attr[0]){
					case 'source':
						nvalue = '';
						for(var x = 1; x<single_attr.length; x++) nvalue += (x>1?'=':'') + single_attr[x];
						path = nvalue.split('?'); 
						config['src'] = nvalue;
						
						nvalue = '';
						for(var x = 1; x<path.length; x++) nvalue += (x>1?'?':'') + path[x];
						fv_array = nvalue.split('&');
						for(var x in fv_array){
							var fv = fv_array[x].split('=');
							fvvalue = '';
							for(var x = 1; x<fv.length; x++) fvvalue += (x>1?'=':'') + fv[x];
							flashvars[fv[0]] = fvvalue;
						}
						
						break;
					case 'height':
					case 'width':
						css_config[single_attr[0]] = Number(single_attr[1])==NaN||single_attr[1].substr(single_attr[1].length-1,1)=='%'?single_attr[1]:single_attr[1]+'px';
						config[single_attr[0]] = single_attr[1];
						break;
					default:
						config[single_attr[0]] = single_attr[1];
						break;
				}
			}
		}
		$(value).css(css_config);
		$(value).flashembed(config, flashvars);
		backgroundPosition();
	});
	$('.swfobject').each(function(key, value){
		var source = ""
		var css_config = {};
		var config = {};
		var flashvars = {};
		var name = 'swfo_'+Math.floor(Math.random()*1000);
		
		if(!$(value).attr('id')) $(value).attr('id','swfobject_'+Math.floor(Math.random()*1000));
		
		if($(value).attr('rel')){
			var attrs = $(value).attr('rel').split(';');
			for(var n in attrs){
				var single_attr = attrs[n].split('::');
				switch(single_attr[0]){
					case 'source':
						source = single_attr[1];
						break;
					case 'height':
					case 'width':
						css_config[single_attr[0]] = Number(single_attr[1])==NaN||single_attr[1].substr(single_attr[1].length-1,1)=='%'?single_attr[1]:single_attr[1]+'px';
					default:
						config[single_attr[0]] = single_attr[1];
						break;
				}
			}
		}
		
		if (mobileDevice()) {
			$(value).append($("<img/>").attr({
				"src": "/wgte/images/nomobile.png",
				"alt": "Not Supported By Mobile Devices"
			}));
		}
		else {
			$(value).css(css_config);
			attributes = {
				'class': $(value).attr('class')
			}
			var so = swfobject.embedSWF(source, $(value).attr('id'), config['width'], config['height'], "8", false, flashvars, config, attributes);
		}
		backgroundPosition();
	});
	$('.videoTag').each(function(key, value){
		var source = ""
		var css_config = {};
		var config = {};
		var flashvars = {};
		var name = 'videoTag_'+Math.floor(Math.random()*1000);
		
		if(!$(value).attr('id')) $(value).attr('id','videoTag_'+Math.floor(Math.random()*1000));
		
		if($(value).attr('rel')){
			var attrs = $(value).attr('rel').split(';');
			for(var n in attrs){
				var single_attr = attrs[n].split('::');
				switch(single_attr[0]){
					case 'source':
						source = single_attr[1];
						break;
					case 'height':
					case 'width':
						css_config[single_attr[0]] = Number(single_attr[1])==NaN||single_attr[1].substr(single_attr[1].length-1,1)=='%'?single_attr[1]:single_attr[1]+'px';
					default:
						config[single_attr[0]] = single_attr[1];
						break;
				}
			}
		}
		
		if (mobileDevice("Android") || mobileDevice("BlackBerry")) {
			$(value).append($("<img/>").attr({
				"src": "/wgte/images/nomobile.png",
				"alt": "Not Supported By Mobile Devices"
			}));
		}
		else {
			$(value).css(css_config);
			var videoTag = $('<video/>').attr({
				'src': config['file'],
				'height': config['height'],
				'width': config['width'],
				'controls': 'controls',
				'preload': 'preload',
				'style': 'z-index:5000'
			});
			$(value).append(videoTag);
		}
		backgroundPosition();
	});
	$('.overlay').each(function(key, value){
		$(value).overlay({ 

		    // some expose tweaks suitable for modal dialogs 
		    expose: { 
		        color: '#333', 
		        loadSpeed: 200, 
		        opacity: 0.9 
		    }, 
		 
		    closeOnClick: true 
		});
	});
	
	$(".scroller").scrollable({
		size: 4
	}).find("a").tooltip('#tooltip');
	
	$('.rating').each(function(key, value){
		if(!$(value).attr('id')) $(value).attr('id','rating_'+Math.floor(Math.random()*1000));
		var options = $(value).attr('rel'), singles = {}, api = {};
		if(options != ''){
			options = options.split(';');
			api['callback'] = rating;
			$(options).each(function(key,value){
				switch(value){
					case 'disabled':
						api['disabled'] = true;
						break;
					case 'onevote':
						api['oneVoteOnly'] = true;
						break;
					case 'search':
						api['callback'] = $S.rating;
				}
			});
		}
		$(value).stars(api);
	});
	
	$('object').each(function(key,value){
		$(value).outerHTML = $(value).outerHTML;
	});
	
	$('.dropdown').each(function(key,value){
		$(value).mouseover(function(){
			var menu = $(this).attr('rel');
			dropdown(menu);
		});
	});
	
	$('#response_text').each(function(key,value){
		var limit = 2000;
		$(value).tinymce({
			// Location of TinyMCE script
			script_url : '/modules/tinymce/tiny_mce.js',
			
			// General options
			theme: "advanced",
			plugins: "inlinepopups,safari,table,paste,maxcharsHTML,maxchars",
			
			// Max chars plugin options
			max_chars: limit,
			max_chars_indicator: "lengthBox",
			max_HTML_chars: limit,
			max_chars_HTML_indicator: "lengthBoxHTML",
			max_HTML_callback: function(length){
				alert('Your content is too long' + length);
			},
			
			// Theme Options
			theme_advanced_buttons1: "pasteword,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,removeformat",
			theme_advanced_buttons2: "",
			theme_advanced_buttons3: "",
			
			// Other Options
			dialog_type: "modal",
			inline_styles: false,
			font_size_style_values: "8px,10px,12px,14px,18px,24px,36px",
			valid_elements: "span[mcs_style|style|align],p[align],br,a[href|target|title|name],strong/b,li,ul,ol,em/i,u,hr,sup,sub," +
			"table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|dir<ltr?rtl|height|lang|rules|summary|title|width]," +
			"tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rt|lang|title|valign<baseline?bottom?middle?top]," +
			"td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff" +
			"|colspan|dir<ltr?rtl|headers|height|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup" +
			"|title|valign<baseline?bottom?middle?top|width]," +
			"tfoot[align<center?char?justify?left?right|char|charoff|dir<ltr?rtl" +
			"|lang|title|valign<baseline?bottom?middle?top]," +
			"th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff" +
			"|colspan|dir<ltr?rtl|headers|height|lang|nowrap<nowrap|rowspan" +
			"|scope<col?colgroup?row?rowgroup|title|valign<baseline?bottom?middle?top|width]," +
			"thead[align<center?char?justify?left?right|char|charoff|dir<ltr?rtl|lang|title" +
			"|valign<baseline?bottom?middle?top]," +
			"tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class" +
			"|rowspan|dir<ltr?rtl|lang|title|valign<baseline?bottom?middle?top]",
			invalid_elements: "font,script,div,big,small,h1,h2,h3,h4,h5,h6,object,embed,img",
			relative_urls: false,
			convert_urls: false
		})
	});
	$('#admin_item_description').each(function(key,value){
		var limit = 5000;
		$(value).tinymce({
			// Location of TinyMCE script
			script_url : '/modules/tinymce/tiny_mce.js',
			
			// General options
			theme: "advanced",
			plugins: "inlinepopups,safari,table,paste,maxcharsHTML,maxchars,advlink",
			
			// Max chars plugin options
			max_chars: limit,
			max_chars_indicator: "lengthBox",
			max_HTML_chars: limit,
			max_chars_HTML_indicator: "lengthBoxHTML",
			max_HTML_callback: function(length){
				alert('Your content is too long' + length);
			},
			
			// Theme Options
			theme_advanced_buttons1: "pasteword,bold,italic,underline,|,link,unlink,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,removeformat,|,code",
			theme_advanced_buttons2: "",
			theme_advanced_buttons3: "",
			
			// Other Options
			dialog_type: "modal",
			inline_styles: false,
			font_size_style_values: "8px,10px,12px,14px,18px,24px,36px",
			valid_elements: "span[mcs_style|style|align],p[align],br,a[href|target|title|name],strong/b,li,ul,ol,em/i,u,hr,sup,sub," +
			"table[align<center?left?right|bgcolor|border|cellpadding|cellspacing|dir<ltr?rtl|height|lang|rules|summary|title|width]," +
			"tbody[align<center?char?justify?left?right|char|class|charoff|dir<ltr?rt|lang|title|valign<baseline?bottom?middle?top]," +
			"td[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff" +
			"|colspan|dir<ltr?rtl|headers|height|lang|nowrap<nowrap|rowspan|scope<col?colgroup?row?rowgroup" +
			"|title|valign<baseline?bottom?middle?top|width]," +
			"tfoot[align<center?char?justify?left?right|char|charoff|dir<ltr?rtl" +
			"|lang|title|valign<baseline?bottom?middle?top]," +
			"th[abbr|align<center?char?justify?left?right|axis|bgcolor|char|charoff" +
			"|colspan|dir<ltr?rtl|headers|height|lang|nowrap<nowrap|rowspan" +
			"|scope<col?colgroup?row?rowgroup|title|valign<baseline?bottom?middle?top|width]," +
			"thead[align<center?char?justify?left?right|char|charoff|dir<ltr?rtl|lang|title" +
			"|valign<baseline?bottom?middle?top]," +
			"tr[abbr|align<center?char?justify?left?right|bgcolor|char|charoff|class" +
			"|rowspan|dir<ltr?rtl|lang|title|valign<baseline?bottom?middle?top]",
			invalid_elements: "font,script,div,big,small,h1,h2,h3,h4,h5,h6,object,embed,img",
			relative_urls: false,
			convert_urls: false
		})
	});

	// Adjust Background For Window vs Content Size
	backgroundPosition();
	$('object').load(backgroundPosition);
	$('img').load(backgroundPosition);
	$('iframe').load(function(){
		iframeLoad(this);
		backgroundPosition();
	});
	$(window).resize(backgroundPosition);
});
