//Javascript Common Library
//Popup windows
function editWindow(openurl, confirmStr, width, height, scrollbars) {
	if (confirmStr && !confirm(confirmStr)) {
		return false;
	}
	if (!width) {
		width=600;
	}
	if (!height) {
		height=460;
	}
	if (!scrollbars) {
		scrollbars=1;
	}
	window.open(openurl,'editwin','width='+width+',height='+height+',scrollbars='+scrollbars);
	return true;
}
//MM Functions
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_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_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_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];
		}
}
//Elements and IDs
function removeElement(parentDiv, childDiv){
	 if (childDiv == parentDiv) {
				alert("The parent div cannot be removed.");
	 }
	 else if (document.getElementById(childDiv)) {
				var child = document.getElementById(childDiv);
				var parent = document.getElementById(parentDiv);
				parent.removeChild(child);
	 }
	 else {
				alert("Child div has already been removed or does not exist.");
				return false;
	 }
	 return true;
}
function generateUniqueID(){
	var id;
	do{
		id  = Math.floor(Math.random()*111);
	}
	while(document.getElementById(id)!=null);

	return id;
}
//Ajax
function loadRemote(strPage,targetDIV,parameters){
	var http = false;

	if (strPage==null || targetDIV==null){
			return false;
	}
	var loading= '';

	document.getElementById(targetDIV).innerHTML = loading;

	if(navigator.appName == "Microsoft Internet Explorer") {
		http = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		http = new XMLHttpRequest();
	}

	http.open("POST",strPage,true);
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	/*
			http.setRequestHeader("Content-length", parameters.length);
			http.setRequestHeader("Connection", "close");
	*/
	http.send(parameters);
	http.onreadystatechange=function() {

	if(http.readyState == 4) {
			var result = http.responseText;
			document.getElementById(targetDIV).innerHTML = result;
			evalJavaScript(result);
	}else{

	}
	return true;
	}
	return true;
}
function evalJavaScript(content){
	var beginScript = content.search(/<script/i);
	var endScript = content.search(/<\/script\s*>/i);

	if(beginScript!=-1 && endScript!=-1){
			AjaxScript = content.substring(beginScript,endScript+9);
			AjaxScript = AjaxScript.replace(/<script[^><]*\>|<\/script[^><]*>/ig,''); // strips out script tags

			if(AjaxScript.length > 0) eval(AjaxScript);
	}
}
function api_loadContentForm(formid){
	
	if(!formid){return false;}
	
	/* Disable all elements */
	$('tbody[control]').attr('style','display:none;');	
	$('tbody[control] *').attr('disabled',true);
	
	
	/* Enable only the selected form */
	$('#form-control-'+formid).attr('style','');	
	$('#form-control-'+formid+' *').attr('disabled', false);
	
}
// Gallery Vertical scroll
function api_galleryVerticalChangePic(element) {
	var parent = $(element).parent();
	var index = $(parent).index();
	var gallery = $(element).closest('.gallery-vertical');
	var vertical_images = jQuery(gallery).find('.gallery-vertical-image');
	var thumbnail_images = jQuery(gallery).find('ul.thumbnail_imgs li');
	
	if($(vertical_images).is(':animated')) {
		console.log('Animation in progress aborting.');
		return;
	}		
	
	vertical_images.each(function(){
		$(this).css("display","none");
	});
	
	thumbnail_images.each(function(){
		$(this).removeClass("selected");
	});
	
	//$(thumbnail_images[index]).addClass('selected');
	
	var thumbnails = $(thumbnail_images[index]).attr('name');
			thumbnails = $('li[name="'+String(thumbnails)+'"]');
	
 	thumbnails.each(function(){
		$(this).addClass('selected');
	});
	
	$(vertical_images[index]).fadeIn(300);
	
}
function api_galleryVerticalScrollDown(element){
	var thumbNailHeight = 78;
	var parent = jQuery(element).parent();
	var gallery = jQuery(parent).find('.thumbnail_imgs');
	var numOfThumbnails = parent.find('li').size();
	var thumbContainerMaxHeight = ((numOfThumbnails-2)*thumbNailHeight);
	var margin_top = parseInt($(gallery).css('margin-top').replace("px",""));
	var margin_top_after = margin_top + thumbNailHeight;
	
	if($(gallery).is(':animated')) {
		console.log('Animation in progress aborting.');
		return;
	}
	
	if(margin_top_after > 0){
		$(gallery).css('marginTop',(thumbContainerMaxHeight-(thumbNailHeight))*(-1));
		margin_top = parseInt($(gallery).css('margin-top').replace("px",""));
		margin_top_after = margin_top - thumbNailHeight;
	}
	
	if(margin_top_after<=0 && Math.abs(margin_top_after)<=thumbContainerMaxHeight){
		$(gallery).animate({"margin-top": parseInt($(gallery).css('margin-top').replace("px",""))+thumbNailHeight}, "fast");
	}
	
}
function api_galleryVerticalScrollUp(element){
	var margin = 2;
	var thumbNailHeight = 78;
	var parent = jQuery(element).parent();
	var gallery = jQuery(parent).find('.thumbnail_imgs');
	var numOfThumbnails = parent.find('li').size();
	var thumbContainerMaxHeight = (numOfThumbnails*thumbNailHeight);
	var margin_top = parseInt($(gallery).css('margin-top').replace("px",""));
	var margin_top_after = margin_top - thumbNailHeight;

	if($(gallery).is(':animated')) {
		console.log('Animation in progress aborting.');
		return;
	}			
	
	if(Math.abs(margin_top_after) > thumbContainerMaxHeight-(thumbNailHeight*3)){
		$(gallery).css('marginTop',0) ;
		margin_top = parseInt($(gallery).css('margin-top').replace("px",""));
		margin_top_after = margin_top - thumbNailHeight;
	}
	
	if(Math.abs(margin_top_after) <= thumbContainerMaxHeight-(thumbNailHeight*3)){
		$(gallery).animate({"margin-top": margin_top - thumbNailHeight}, "fast");
	}
	
}
function api_galleryHorizontalSlide(element,direction){
	
	var amount = 282;
	var currentPosition = 0;
	var parent = element.parent().parent();
	var gallery = parent.find('.gallery-horizontal-slide');
	
	var numOfThumbnails = $(gallery).find('li').size();
	var thumbContainerMaxWidth = numOfThumbnails*amount;
	
	if($(gallery).is(':animated')) {
		console.log('Animation in progress aborting.');
		return;
	}
	
	if(direction == 'left'){
		
		currentPosition = parseInt($(gallery).css('margin-left').replace("px",""));
		
		if(currentPosition == (thumbContainerMaxWidth-amount)*(-1)){
			$(gallery).css('marginLeft',0) ;
		}		
		
		if(parseInt($(gallery).css('marginLeft').replace("px",""))!=((thumbContainerMaxWidth-amount)*(-1))){
			$(gallery).animate({"margin-left": parseInt($(gallery).css('margin-left').replace("px",""))-amount}, 300);
		}
		
	}else{
	
		currentPosition = parseInt($(gallery).css('margin-left').replace("px",""));
		
		if(currentPosition == 0){
			$(gallery).css('marginLeft',(thumbContainerMaxWidth - amount)*(-1)) ;
		}
		
		if(parseInt($(gallery).css('marginLeft').replace("px",""))!=0){
			$(gallery).animate({"margin-left": parseInt($(gallery).css('margin-left').replace("px",""))+amount},300);
		}
		
	}
	
}
function api_controlGalleryHorizontalSlide(element,direction){
		
	var amount = 144;
	var parent = element.closest('.gallery-horizontal-thumbs');
	var gallery = parent.find('ul.control-gallery-horizontal');

	var numOfThumbnails = $(gallery).find('li').size();
	var thumbContainerMaxWidth = numOfThumbnails*amount;
	
	console.log(parent);
	console.log(gallery);
	
	if($(gallery).is(':animated')) {
		console.log('Animation in progress aborting.');
		return;
	}
	
	if(direction == 'left'){
		if(parseInt($(gallery).css('marginLeft').replace("px",""))>((thumbContainerMaxWidth-(amount*3))*(-1))){
			$(gallery).animate({"margin-left": parseInt($(gallery).css('margin-left').replace("px",""))-amount}, 300);
		}
	}else{
		if(parseInt($(gallery).css('marginLeft').replace("px",""))!=0){
			$(gallery).animate({"margin-left": parseInt($(gallery).css('margin-left').replace("px",""))+amount}, 300);
		}
	}
	
}
function api_controlGalleryHorizontalChangePic(element) {
	var gallery = $(element).closest('.gallery-horizontal');
	var index = $(element).parent().index();
	

	var vertical_images = jQuery(gallery).find('.gallery-horizontal-image a');
	var thumbnail_images = jQuery(gallery).find('ul.control-gallery-horizontal li');
	
	vertical_images.each(function(){
		$(this).css("display","none");
	});
	
	thumbnail_images.each(function(){
		$(this).removeClass("selected");
	});
	
	console.log("Index: "+index);
	console.log(thumbnail_images);
	
	$(thumbnail_images[index]).addClass('selected');
	$(vertical_images[index]).fadeIn(300);
	
}
function api_deleteParagraph(element){
	container = jQuery(element).closest('div.paragraph_container');
	jQuery(container).remove();
	
	return false;
}
function api_addParagraph(element,name){
	var parent = jQuery(element).parent().parent();
	var counter = jQuery('.paragraph_container');
	var paragraph = '<tr><td>';
			paragraph += '<div class="paragraph_container">';
			paragraph +='<table>';
			paragraph +='<tr><td colspan="2" class="shadegrey"><a href="#" onclick="api_deleteParagraph(this);">[ delete paragraph ]</a></td></tr>';
			paragraph +='<tr>';
			paragraph +='<td>Paragraph text</td>';
			paragraph +='<td class="shadegrey">';
			paragraph +='<textarea cols="50" rows="10" name="'+name+'[extra][paragraph][]" id="paragraph" ></textarea>';
			paragraph +='</td>';
			paragraph +='</tr>';
			paragraph +='<tr>';
			paragraph +='<td>Paragraph URL</td>';
			paragraph +='<td>';
			paragraph +='<input type=text name="'+name+'[extra][paragraph_url][]" id="btn_caption" value="" style="width:100%;">';
			paragraph +='</td>';
			paragraph +='</tr>';
			paragraph +='<tr>';
			paragraph +='<td>Paragraph Button Caption</td>';
			paragraph +='<td>';
			paragraph +='<input type=text name="'+name+'[extra][paragraph_btn_caption][]" id="paragraph_btn_caption" value="" style="width:100%;">';
			paragraph +='</td>';
			paragraph +='</tr>';
			paragraph +='</table>';
			paragraph +='</div>';
			paragraph +='</td></tr>';
	jQuery(parent).before(paragraph);
	
	return false;
}
function api_deleteControlLink(element){
	container = jQuery(element).closest('tr.form-control-1-link');
	jQuery(container).remove();
	
	return false;
}
function api_addControlLink(name){
	var table = jQuery('.form-control-1-table');
	var links 		= jQuery(table).find('.form-control-1-link');
	var links_count = jQuery(links).size();
	var paragraph  = '<tr class="form-control-1-link">';
			paragraph += '<td>';
			paragraph += '<input type="text" name="'+name+'[extra][related_links][]" id="related_links" value="" class="paragraphheading" style="width:100%;">';
			paragraph += '</td>';
			paragraph += '<td>';
			paragraph += '[<a class="linkred" href="#" onclick="api_deleteControlLink(this);"> Delete </a>]';
			paragraph += '</td>';
			paragraph += '</tr>';
			jQuery(links[links_count-1]).after(paragraph);
	
	console.log(jQuery(links).last());
	return false;
}
//Accordion
$(document).ready(function($) {
		 $('#accordion .accordion_container').hide();
		 $('#accordion h3 a').click(function(){
						 $('#accordion .accordion_container').slideUp();
						 $(this).parent().next().slideDown();
						 return false;
		 });
});
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

