// ie detection
var msoft = false;

var request = false;
try {
	request = new XMLHttpRequest();
} catch (trymicrosoft) {
	try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
		msoft = true;
	} catch (othermicrosoft) {
		try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
			msoft = true;
		} catch (failed) {
			request = false;
		}
	}
}

if (navigator.appName == "Microsoft Internet Explorer") {
	msoft = true;
}

function halt_delete(myFunc,item) {
	var answer = confirm("Are you sure you want to delete this?");
	
	if (answer) {
		window[myFunc](item);
		return true;
	} else {
		return false;
	}
}

function halt_delete_nofunc() {
	var answer = confirm("Are you sure you want to delete this?");

	if (answer) {
		return true;
	} else {
		return false;
	}
}


function saveConfirm() {
	var textareas = document.getElementsByTagName("textarea");
	
	if (textareas.length > 0) {
		var answer = confirm("You have open sections on this page.\nAre you sure you want to proceed before saving them?");

		if (answer) {
			return true;
		} else {
			return false;
		}
	} else {
		return true;
	}
	
	return true;
}

function addLoadEvent(func) {
	var oldOnload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldOnload();
			func();
		}
	}
}

function eregReplace(search, replace, subject) {
  return subject.replace(new RegExp(search,'g'), replace);
}

function hasClass(node, className) {
  if (node.className == className) {
    return true;
  }
  var reg = new RegExp('(^| )'+ className +'($| )')
  if (reg.test(node.className)) {
    return true;
  }
  return false;
}

function absolutePosition(el) {
  var sLeft = 0, sTop = 0;
  var isDiv = /^div$/i.test(el.tagName);
  if (isDiv && el.scrollLeft) {
    sLeft = el.scrollLeft;
  }
  if (isDiv && el.scrollTop) {
    sTop = el.scrollTop;
  }
  var r = { x: el.offsetLeft - sLeft, y: el.offsetTop - sTop };
  if (el.offsetParent) {
    var tmp = absolutePosition(el.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
};

function dimensions(el) {
  return { width: el.offsetWidth, height: el.offsetHeight };
}

function removeNode(node) {
  if (typeof node == 'string') {
    node = $(node);
  }
  if (node && node.parentNode) {
    return node.parentNode.removeChild(node);
  }
  else {
    return false;
  }
}

function addClass(node, className) {
  if (hasClass(node, className)) {
    return false;
  }
  node.className += ' '+ className;
  return true;
}

function removeClass(node, className) {
  if (!hasClass(node, className)) {
    return false;
  }
  // Replaces words surrounded with whitespace or at a string border with a space. Prevents multiple class names from being glued together.
  node.className = eregReplace('(^|\\s+)'+ className +'($|\\s+)', ' ', node.className);
  return true;
}

function stopEvent(event) {
  if (event.preventDefault) {
    event.preventDefault();
    event.stopPropagation();
  }
  else {
    event.returnValue = false;
    event.cancelBubble = true;
  }
}

function IsNumeric(sText) {
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	
	for (i = 0; i < sText.length && IsNumber == true; i++)  { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}

	return IsNumber;
}

function isNumberKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (charCode > 31 && (charCode < 48 || charCode > 57))
	return false;
	
	return true;
}

function cardinal(j) {
	var i = j + '';

	if (i.substr(-1,1) == 1) { return i + "st"; } 
	else if (i.substr(-1,1) == 2) { return i + "nd"; } 
	else if (i.substr(-1,1) == 3) { return i + "rd"; } 
	else { return i + "th"; } 
}

function open_sidebar(divID) {
	var theDiv = document.getElementById(divID);
	
	var moduleString = divID + "1";
	
	var module = theDiv.getElementsByTagName("div")[0];	
	module.setAttribute("id",moduleString);
	
	if (theDiv.className == "expanded") {
		module.style.display = "block";
		theDiv.className = '';
		Effect.BlindUp(moduleString,{duration: .2});
	} else {
		module.style.display = "none";
		theDiv.className = 'expanded';
		Effect.BlindDown(moduleString,{duration: .2});
	}

}

function channelToggle(node,divID) {
	var theDiv = document.getElementById(divID);
		
	while (node.nodeName != "DIV") {
		node = node.parentNode;
	}
	
	var main = theDiv.parentNode;
	var navbar = node.parentNode;
	
	while (main.getAttribute("id") != "main") {
		main = main.parentNode;
	}
	
	var mainDivs = main.getElementsByTagName("div");

	while (navbar.getAttribute("id") != "navbar") {
		navbar = navbar.parentNode;
	}

	var navbarDivs = navbar.getElementsByTagName("div");
		
	if (hasClass(theDiv,"expanded")) {	
		theDiv.style.display = "block";
		removeClass(theDiv,"expanded");
		node.className = '';
		Effect.BlindUp(divID,{duration: .2});		
	} else {
		for (i=0;i<mainDivs.length;i++) {
			if (hasClass(mainDivs[i],"expanded") && hasClass(mainDivs[i],"drop_down")) {
				mainDivs[i].style.display = "block";
				removeClass(mainDivs[i],"expanded");
				Effect.BlindUp(mainDivs[i].getAttribute("id"),{duration: .2});		
			}
		}

		for (i=0;i<navbarDivs.length;i++) {
			if (hasClass(navbarDivs[i],"expanded")) {
				removeClass(navbarDivs[i],"expanded");
			}
		}

		theDiv.style.display = "none";
		addClass(theDiv,"expanded");
		node.className = 'expanded';
		Effect.BlindDown(divID,{duration: .2});	
	}
}

function open_manager(divID) {
	var theDiv = document.getElementById(divID);
	
	var moduleString = divID + "1";
	
	var module = theDiv.getElementsByTagName("div")[0];	
	module.setAttribute("id",moduleString);
	
	if (theDiv.className == "manager_area expanded") {
		module.style.display = "block";
		theDiv.className = 'manager_area';
		Effect.BlindUp(moduleString,{duration: .2});
	} else {
		module.style.display = "none";
		theDiv.className = 'manager_area expanded';
		Effect.BlindDown(moduleString,{duration: .2});
	}

}

function openWin(URL, width, height) {
	myurl = "http://"+URL;
	mywin = window.open(myurl,"win", "toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=1,resizable=0,WIDTH="+width+", HEIGHT="+height);
	window.blur();
}

function play(item) {
	var pNode = item.parentNode;

	while (pNode.nodeName != "A") {
		pNode = pNode.parentNode;
	}
	
	// Link element contains movie info
	var aNode = pNode;	
	var movie = aNode.getAttribute("href");
	var mtarget = aNode.getAttribute("target");
	var poster = item.getAttribute("src");
	
	while (!hasClass(pNode,'quicktime')) {
		pNode = pNode.parentNode;
	}

	var movieHeight = aNode.getAttribute("mheight");
	var movieWidth = aNode.getAttribute("mwidth");

	if (WebKitDetect.isMobile() || mtarget == "quicktimeplayer") {
		if (WebKitDetect.isMobile()) {
			mtarget = 'myself';
		}
	
		var movie=new AC.Quicktime.packageMovie('gallery-movie',poster,{
		width:movieWidth,
		href: movie,
		height:movieHeight,
		controller:false,
		autoplay:true,
		showlogo:false,
		cache:true,
		target:mtarget,
		bgcolor:'#ffffff'
		});
	} else {
		var movie=new AC.Quicktime.packageMovie('gallery-movie',movie,{
		target:mtarget,
		width:movieWidth,
		height:movieHeight,
		controller:true,
		showlogo:false,
		cache:true,
		autoplay:true,
		bgcolor:'#ffffff'
		});
	}

	pNode.innerHTML = '';
	pNode.appendChild(movie);
}

function playLg(item,superNode) {
	var pNode = item.parentNode;

	while (pNode.nodeName != "A") {
		pNode = pNode.parentNode;
	}
	
	// Link element contains movie info
	var aNode = pNode;	
	var movie = aNode.getAttribute("href");
	var mtarget = aNode.getAttribute("target");
	var poster = item.getAttribute("src");
	
	var movieHeight = aNode.getAttribute("mheight");
	var movieWidth = aNode.getAttribute("mwidth");

	if (WebKitDetect.isMobile() || mtarget == "quicktimeplayer") {
		if (WebKitDetect.isMobile()) {
			mtarget = 'myself';
		}
	
		var movie=new AC.Quicktime.packageMovie('gallery-movie',poster,{
		width:movieWidth,
		href: movie,
		height:movieHeight,
		controller:false,
		autoplay:true,
		showlogo:false,
		cache:true,
		target:mtarget,
		bgcolor:'#ffffff'
		});
	} else {
		var movie=new AC.Quicktime.packageMovie('gallery-movie',movie,{
		target:mtarget,
		width:movieWidth,
		height:movieHeight,
		controller:true,
		showlogo:false,
		cache:true,
		autoplay:true,
		bgcolor:'#ffffff'
		});
	}

	superNode.appendChild(movie);
}

function load_action_image() {
	var action_images = $$('img.qt_poster');

	for (i=0;i<action_images.length;i++) {
		action_images[i].onclick = function () { play(this); return false; }
		action_images[i].setAttribute("style","cursor: pointer");

		if (WebKitDetect.isMobile() || hasClass(action_images[i],"ext")) {
			play(action_images[i]);
		}
	}
}