var xmlHttp;

function GetXmlHttpObject() { 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest()
	} else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

$(document).ready(function() { /*jQuery DOM ready */
	
	$("#nav").delegate("a", "click", function() {
		var $curr_hash = window.location.hash.substring(1);
		if($(this).attr("href") != $curr_hash) {
			window.location.hash = $(this).attr("href");
			$(this).blur();
		}
		return false;
	});													 
	
	// nav function
	$(window).bind('hashchange',function() {
		target_hash = window.location.hash.substring(1);
		if(target_hash) { // if there is a hash...
		
			// set new background image...
			switch(target_hash) {
				case 'portfolio.php' : { }
				case 'about.php' : { }
				case 'press.php' : { }
				case 'contact.php' : { }
				case 'login.php' : {
					$("#site_frame").removeClass('light');
					$("#site_frame").addClass('dark');
					break;
				}
				case 'collection.php' : {
					$("#site_frame").removeClass('dark');
					$("#site_frame").addClass('light');
					break;
				}
				default : {
					$("#site_frame").removeClass('dark');
					$("#site_frame").addClass('light');
				}
			}
			
			// clear nav indicators and set new active...
			$("#nav a.active").removeClass("active");
			var $target_page = target_hash.substring(0,target_hash.indexOf('.php'));
			$("#nav a#a_"+$target_page).addClass("active");
			
			//load target page contents into framework...
			$("#page").find("#xfer").fadeOut(100, function() {
				$("#page").hide().load(target_hash + " #xfer", function() { 
					$("#page").fadeIn(300);
					init_hovers();
					// set head title to match pagetitle element...
					$("title").text($("pagetitle").text());
					// specific page logic ...
					if($target_page =='index') {
						// no action
					} else if($target_page =='portfolio') {
						if (pluginlist.indexOf("Flash")!=-1) {
							$("#noflash").hide();
						} else {
							$("#noflash").show();
						}
					} else if($target_page =='collection') {
						// no action
					} else if($target_page =='about') {
						// no action
					} else if($target_page =='press') {
						if (pluginlist.indexOf("Flash")!=-1) {
							$("#noflash").hide();
						} else {
							$("#noflash").show();
						}
						Shadowbox.init();
					} else if($target_page =='contact') {
						document.getElementById('mt').innerHTML = obfuscate(document.getElementById('box').value);
						$("#contact_name").focus();
					} else if($target_page =='login') {
						$("#userID").focus();
					}
				});
			});
		} else {
			loc = window.location.href;
			//console.log("loc="+loc);
			pg = loc.substring(loc.indexOf('.com/')+5,loc.indexOf('.php'));
			//console.log("pg="+pg);
			if((pg != 'admin')&&(pg != 'admin_upload')) {
				if(pg == window.location.href) {
					//console.log("no hash detected. setting page to index");
					tar = "#index.php";
				} else {
					//console.log("hash detected. setting index and hash");
					tar = "index.php#"+pg+".php";
				}
				//console.log("sequence complete... pg = "+tar);
				window.location.href = tar;
				$("#nav li#"+pg).addClass("active"); // if there is no hash, then indicate the index page
			}
		}
	});
	
	$(window).trigger('hashchange'); // initial navigation trigger
	
	init_hovers();
	
});

function init_hovers() {
	/* nav hover listener */
	$("#nav a:not('.active')").hover(function () {
		$nav_id = $(this).attr('id');
		$("#"+$nav_id).removeClass('up');
		$("#"+$nav_id).addClass('over');
	}, function() {
		 $("#"+$nav_id).removeClass('over');
		 $("#"+$nav_id).addClass('up');
	});
	/*press listeners */
	$("#press div.node").hover(function() {
		$node_id = $(this).attr('id');
		$("#"+$node_id+" div.node_img").addClass('node_over');
	}, function() {
		$("#"+$node_id+" div.node_img").removeClass('node_over');
	});
}

function open_overlay(target) { // open overlay object
	//console.log(target);
	//$("#overlay").load(target+" body").show();
}

function get_spg(spg) {
	$("#page").find("#xfer").fadeOut(100, function() {
		$("#page").hide().load(target_hash + "?spg=" + spg +" #xfer", function() { 
			$("#page").fadeIn(300);
			init_hovers();
			$("#press div.node").click(function() {
				$target_url = $(this).find(" div.node_link").text();
				open_sb($target_url);
			});
		})
	});
}

function obfuscate(box) {
	var ahrefTop = "<a href=\'mailTo:";
	var ahrefMid = "\'>";
	var ahrefBot = "</a>";
	var at = "&#64;"
	var domain = "tarotvintage.com"
	var addy = ahrefTop + box + at + domain + ahrefMid + box + at + domain + ahrefBot;
	return addy;
}

function verify_contact(mthd) {
	var status = 0;
	var contact_name 					= document.getElementById('contact_name');
	var contact_email 					= document.getElementById('contact_email');
	var contact_message 		= document.getElementById('contact_message');
	var vk_entry 										= document.getElementById('vk');
	var vk_ver												= document.getElementById('vk_ver');
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if(mthd == 'live') {
		if(!(contact_name.value)||contact_name.value.length < 2) {
			$("#fb_contact_name").text('Please enter at least 2 characters');
		} else {
			$("#fb_contact_name").text('');
		}
		if(!filter.test(contact_email.value)) {
			$("#fb_contact_email").text('Please provide a valid email address');
		} else {
			$("#fb_contact_email").text('');
		}
		if(!(contact_message.value)||contact_message.value.length < 5) {
			$("#fb_contact_message").text('Please enter a message longer than 5 characters');
		} else {
			$("#fb_contact_message").text('');
		}
	} else if(mthd == 'sub') {
		if(!(contact_name.value)||contact_name.value.length < 2) {
			$("#fb_contact_name").text('Please enter at least 2 characters');
			status += 1;
		} else {
			$("#fb_contact_name").text('');
		}
		if(!filter.test(contact_email.value)) {
			$("#fb_contact_email").text('Please provide a valid email address');
			status += 1;
		} else {
			$("#fb_contact_email").text('');
		}
		if(!(contact_message.value)||contact_message.value.length < 5) {
			$("#fb_contact_message").text('Please enter a message longer than 5 characters');
			status += 1;
		} else {
			$("#fb_contact_message").text('');
		}
		if(vk_entry.value != vk_ver.value.substring(1)) {
			$("#fb_vk").text('Incorrect verification key.');
			status += 1;
		}
		/* score */
		if(status != 0) { return false; } else { return true; }
	}
}

function send_mail() {
	xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null) {
    alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
    return;
  }
  var url="_scripts/tv_ajax.php";
  url=url+"?FTC=send_mail";
	url=url+"&contact_name="+document.getElementById('contact_name').value;
	url=url+"&contact_email="+document.getElementById('contact_email').value;
	url=url+"&contact_message="+document.getElementById('contact_message').value;
  url=url+"&sid="+Math.random();
  xmlHttp.onreadystatechange=response_send_mail;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function response_send_mail() {
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    $("#contact_form_frame").fadeOut(300);
		$("#msg").text(xmlHttp.responseText);
  }
}

function press_jump(target) {
	alert(target);
}

function initMCE(target) {
	tinyMCE.init({
		theme : "advanced",
		mode: "exact",
		plugins : "safari",
		elements : ""+target+"",
		theme_advanced_toolbar_location : "bottom",
		theme_advanced_buttons1 : "bold,italic,underline,|,link,unlink,|,bullist",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		height:"200px",
		width:"500px"
	});
}

function admin_update(type,target) {
	switch(type) {
		case 'y-axis' : {
			var buffer = document.getElementById('y_'+target).value;
			document.getElementById('ref1').value = target;
			document.getElementById('fb_'+target).innerHTML = 'working...';
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null) {
				alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
				return;
			}
			var url="_scripts/tv_ajax.php";
			url=url+"?FTC=update_buffer";
			url=url+"&target="+target;
			url=url+"&val="+buffer;
			url=url+"&sid="+Math.random();
			xmlHttp.onreadystatechange=response_update_admin;
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			break;
		}
		case 'email' : {
			var email = document.getElementById('email').value;
			document.getElementById('ref1').value = type;
			document.getElementById('fb_'+type).innerHTML = 'working...';
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null) {
				alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
				return;
			}
			var url="_scripts/tv_ajax.php";
			url=url+"?FTC=update_email";
			url=url+"&email="+email;
			url=url+"&sid="+Math.random();
			xmlHttp.onreadystatechange=response_update_admin;
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			break;
		}
		case 'about_text' : {
			var tA = tinyMCE.get(type);
			tA.setProgressState(1);
			var about_text = tA.getContent();
			tA.setProgressState(0);
			document.getElementById('ref1').value = type;
			document.getElementById('fb_'+type).innerHTML = 'working...';
			xmlHttp=GetXmlHttpObject();
			if (xmlHttp==null) {
				alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
				return;
			}
			var url="_scripts/tv_ajax.php";
			url=url+"?FTC=update_about";
			url=url+"&about="+about_text;
			url=url+"&sid="+Math.random();
			xmlHttp.onreadystatechange=response_update_admin;
			xmlHttp.open("GET",url,true);
			xmlHttp.send(null);
			break;
		}
		default : {
			alert('Admin Update ERROR - no supplied target');
			return false;
		}
	}
}

function response_update_admin() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    document.getElementById('fb_'+document.getElementById('ref1').value).innerHTML = 'complete!';
		setTimeout("document.getElementById('fb_'+document.getElementById('ref1').value).innerHTML = '&nbsp;'; document.getElementById('ref1').value = '';",1000);
  }
}

function get_press_list() {
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
		return;
	}
	var url="_scripts/tv_ajax.php";
	url=url+"?FTC=get_press_list";
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=response_press_list;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function response_press_list() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
    document.getElementById('press_list').innerHTML = xmlHttp.responseText;
		Shadowbox.setup();
  }
}

function del_press(target) {
	if(confirm('Are you sure that you want to delete this press item and any images associated with it?\n\nThis action cannot be un-done.')) {
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null) {
			alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
			return;
		}
		var url="_scripts/tv_ajax.php";
		url=url+"?FTC=del_press_item";
		url=url+"&target="+target;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=response_del_press;
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	} else {
			return false;
	}
}

function response_del_press() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		alert(xmlHttp.responseText);
		get_press_list();
  }
}

function move_press(target,dir) {
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
		return;
	}
	var url="_scripts/tv_ajax.php";
	url=url+"?FTC=move_press";
	url=url+"&target="+target;
	url=url+"&dir="+dir;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=response_move_press;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function response_move_press() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		get_press_list();
  }
}

function pdb(target,val) {
	switch(target) {
		case 'type' : {
			if(val=='link') {
				document.getElementById('type_label').innerHTML = "Link Type";
				document.getElementById('type_inp').innerHTML = "<table width=\"550\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"100\" class=\"q\">Thumbnail ::</td><td width=\"450\" class\"a\"><input type=\"file\" class=\"inp\" name=\"press_thumb\" id=\"press_thumb\" value =\"\" size=\"32\" /></td></tr><tr><td class=\"q\">URL ::</td><td class\"a\"><input type=\"text\" class=\"inp\" name=\"press_url\" id=\"press_url\" value =\"\" size=\"32\" /><span style=\"font-size:9px;\">&nbsp;e.g.:: http://www.tarotvintage.com</span></td></tr></table>";
			} else {
				document.getElementById('type_label').innerHTML = "Scan Type";
				document.getElementById('type_inp').innerHTML = "<table width=\"550\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"100\" class=\"q\">Thumbnail ::</td><td width=\"450\" class\"a\"><input type=\"file\" class=\"inp\" name=\"press_thumb\" id=\"press_thumb\" value =\"\" size=\"32\" /></td></tr><tr><td class=\"q\">Fullsize ::</td><td class\"a\"><input type=\"file\" class=\"inp\" name=\"press_full\" id=\"press_full\" value =\"\" size=\"32\" /></td></tr></table>";
			}
			break;
		}
		default : {
			alert('pdb error - missing target.');
		}
	}
}

function verify_upload() {
	var type = document.getElementById('type').value;
	if(!(document.getElementById('press_thumb').value)) {
		alert('Please choose a thumbnail image file.');
		document.getElementById('press_thumb').focus();
		return false;
	} else if((type == 'link')&&(!(document.getElementById('press_url').value))) {
		alert('Please enter the url for this press link.');
		document.getElementById('press_url').focus();
		return false;
	} else if((type == 'local')&&(!(document.getElementById('press_full').value))) {
		alert('Please choose a full-size image file.');
		document.getElementById('press_full').focus();
		return false;
	} else if(!(document.getElementById('desc').value)) {
		alert('Please enter a short description.');
		document.getElementById('desc').focus();
		return false;
	} else {
		return true;
	}
}

function verify_admin() {
	var uid = document.getElementById('userID').value;
	//alert(uid);
	var pass = document.getElementById('password').value;
	//alert(pass);
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
		alert ("Error - This browser does not support Ajax XML-HTTP requests. Please update or upgrade your browser.");
		return;
	}
	var url="_scripts/tv_ajax.php";
	url=url+"?FTC=verify_admin";
	url=url+"&uid="+uid;
	url=url+"&pass="+pass;
	url=url+"&sid="+Math.random();
	xmlHttp.onreadystatechange=response_verify_admin;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function response_verify_admin() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		console.log(xmlHttp.responseText);
		if(xmlHttp.responseText == 'OK') {
			$("#fb_login").text('Login verified.');
			var ts = new Date().getTime();
			admin_cookie('admin',ts);
			window.location = "admin.php";
		} else {
			$("#fb_login").text('Incorrect login credentials.');
			return false;
		}
  }
}

function admin_cookie(cname, cvalue) {
	document.cookie = cname + '=' + escape(cvalue);
}

var agt=navigator.userAgent.toLowerCase();
var ie  = (agt.indexOf("msie") != -1);
var ns  = (navigator.appName.indexOf("Netscape") != -1);
var win = ((agt.indexOf("win")!=-1) || (agt.indexOf("32bit")!=-1));
var mac = (agt.indexOf("mac")!=-1);

if (ie && win) {	pluginlist = detectIE("Adobe.SVGCtl","SVG Viewer") + detectIE("SWCtl.SWCtl.1","Shockwave Director") + detectIE("ShockwaveFlash.ShockwaveFlash.1","Shockwave Flash") + detectIE("rmocx.RealPlayer G2 Control.1","RealPlayer") + detectIE("QuickTimeCheckObject.QuickTimeCheck.1","QuickTime") + detectIE("MediaPlayer.MediaPlayer.1","Windows Media Player") + detectIE("PDF.PdfCtrl.5","Acrobat Reader"); }
if (ns || !win) {
		nse = ""; for (var i=0;i<navigator.mimeTypes.length;i++) nse += navigator.mimeTypes[i].type.toLowerCase();
		pluginlist = detectNS("image/svg-xml","SVG Viewer") + detectNS("application/x-director","Shockwave Director") + detectNS("application/x-shockwave-flash","Shockwave Flash") + detectNS("audio/x-pn-realaudio-plugin","RealPlayer") + detectNS("video/quicktime","QuickTime") + detectNS("application/x-mplayer2","Windows Media Player") + detectNS("application/pdf","Acrobat Reader");
}

function detectIE(ClassID,name) { result = false; document.write('<SCRIPT LANGUAGE=VBScript>\n on error resume next \n result = IsObject(CreateObject("' + ClassID + '"))</SCRIPT>\n'); if (result) return name+','; else return ''; }
function detectNS(ClassID,name) { n = ""; if (nse.indexOf(ClassID) != -1) if (navigator.mimeTypes[ClassID].enabledPlugin != null) n = name+","; return n; }

pluginlist += navigator.javaEnabled() ? "Java," : "";
if (pluginlist.length > 0) pluginlist = pluginlist.substring(0,pluginlist.length-1);
