function vcatlogScroll(){

	$(window).scroll(function () {
		var obj = $("#docModalBox");
		obj.css({ top: ( $(document).scrollTop() + $(window).height()/2 ) });
	});
	
}
function vcatlogResize(){ // checks to what size should the #docModalBox be opened, and resizes it on window.resize also
	// docModalBox
	
	$(window).resize(function () {
		// check viewport size
		var windowHeight = $(window).height();
		var windowWidth = $(window).width();
		
		var h = windowHeight - 70;
		var w = Math.floor(h * 1.4);
		
		/* check if height exceeds */
		//if( windowHeight - $("#docModalBox").outerHeight() > 50 ||  windowHeight < $("#docModalBox").outerHeight() ){  
			if( $.browser.msie && $.browser.version == 6 )
				$("#docModalBox").css( "top" , $(document).scrollTop() + windowHeight/2 );
			
			$("#docModalBox").css({ height: h, width: w, marginTop: -h/2, marginRight: -w/2 });
		
		//}
		/*
		if ( windowHeight > 680 ){
			//console.log(windowHeight); 
			if(isIE6){
				$("#docModalBox").css({ top: $(document).scrollTop() });
			}
			else
				$("#docModalBox").css({ width: w, height: "620px", marginTop: "-310px", marginRight: -w/2 });
		}
		*/
		
	});
	
	$(window).trigger('resize');
};

isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
fadeTime = isIE6 ? 1 : "normal";  // IE animations are slow as hell, so make sure they are off.
firstTime = true;

function getUrlVars(){
	if( window.location.href.indexOf('#') != -1 ){
		var hash = window.location.href.slice(window.location.href.indexOf('#') + 1);
		viewDoc($("#pid_"+hash +" > a")[0]);
	}
}

/*---------------------------  
		jQuery Ready
---------------------------*/
$(document).ready(function(){
	
	if(isIE6){ // make sure links without HREF works woth :hover on IE6
		$("a").hover(function(){
			$(this).addClass("hover");
		}, function(){
			$(this).removeClass("hover");
		});
	}
	
	if(firstTime)
	{
		firstTime = false;
		if( $("#cont_wrap").hasClass("home") ){
			getUrlVars();
			
			$('#cont_wrap .documentsWrap dl, #cont_wrap .documentsWrap dd').quicksearch({  /* more accurate search filter */
				position: 'append',
				attached: '#cont_wrap div.col2.filter',
				loaderText: '',
				labelText: '',
				delay: 100
			});
		};
	};
					   
	DD_roundies.addRule('#cont_wrap .col2', '6px', true);
	DD_roundies.addRule('div.error404', '10px', true);
	
	
	jQuery('#cont_wrap div.col2  ul.categories a[href^="#"], #cont_wrap div.documentsWrap > dl > dt > a').click(function(){
		var jump_to = $(this).attr("href");
		jQuery(window).scrollTo( jump_to, 800, {offset:-30} );
		return false; 
	});
	
	$("a[rel='ext']").attr("target","_blank");
	
	$("a[rel='masked']").each(function(){
		var str = this.href;
		this.href = str.replace("[at]", "@");
		var str = this.innerHTML;
		this.innerHTML = str.replace("[at]", "@");
	});
	
	$("#cont_wrap div.documentsWrap dd > a").live("click", function(){
		viewDoc(this);
    });
	
	$("#cont_wrap div.documentsWrap dd > div > a").live("click", function(){
		if( $(this).hasClass('get'))
			getDoc(this);
		else if( $(this).hasClass('view'))
			viewDoc(this);
    });
	
	$('#sidemenu').stickyfloat({duration: 320});

});

function getPaperParams(obj){
	var parentObj = $(obj).parents("dd");
	var pid = parentObj.attr("id").split("pid_")[1]  // splits the string and stores just the integer
	var docName = parentObj.children("a").text();
	var docPrice = parentObj.find("div > span:first").html();
	var isFree = ( parentObj.hasClass("free") ) ? true : false;
	return [pid, docName, docPrice, isFree];
}

function viewDoc(that){
	if( !that ) return false; // check if the hash or call came from an ID that really exists.
	var paperParams = getPaperParams(that);
	var pid =  paperParams[0];
	var btnClass =  (paperParams[3]) ? "download" : "buy";
	$("body")
		.append('<div id="overlay" title="click to close" onclick="killDemoModal();" style="opacity:0; filter: alpha(opacity=0);"></div>')
		.append('<div id="docModalBox"></div>');
	
	if( $.browser.msie && $.browser.version == 6 ){
		$("#docModalBox").css( "top" , $(document).scrollTop() + 10 );
		vcatlogScroll();
	}
	
	vcatlogResize();

	$("#overlay").fadeTo(fadeTime, 0.6, function(){
		$("#docModalBox").show(fadeTime, function(){ 
			$(this).html("<button style='opacity:0; filter: alpha(opacity=0);' onclick='killDemoModal(\"view\");'></button>")
			.append("<button class='action " + btnClass + "' style='opacity:0; filter: alpha(opacity=0);'></button>")
			.append("<iframe src='http://www.v-catalog.com/accounts/misma/?publication=" + pid + "' height='100%' width='100%' frameborder='0' ></iframe>");
			$(this).find("button").animate({ opacity: 1 }, 400);
			$(this).find("button.action").click(function(){ viewToGetDoc(that) });
		});
	});
		
		
	//if(isIE6)
	//	$("#docModalBox").aqFloater({duration: 400, opacity: 1, offsetY: 50});
}

function call_getModalBox(that){
	// general purpose function which build the getModalBox modal window and fill it with the right data
	
	// built preloader
		$("body").append('<div id="preloader"></div>');
		if(isIE6){
			$("#preloader").css('top', $(document).scrollTop()+$(window).height()/2-$("#preloader").height()/2);	
			//$("#preloader").aqFloater({ duration: 100, opacity: 1, attach: 'mid' });
		}
		$("#preloader").show(200);
	
	// extract needed data from given PID
		var paperParams = getPaperParams(that); 
		var pid =  paperParams[0];
		var docName =  paperParams[1];
		var docPrice =  paperParams[2];
		var isFree =  paperParams[3];
	
	var url = isFree ? "_download.php" : "_buy.php"; // check what file to go fetch with AJAX by document type
	xhr = $.ajax({
		url: url,
		//cache: false,
		success: function(html){
			$("#preloader").remove();  	// go away preloader, we don't need you anymore
			$("body").append(html);		// place the data from the ajax call into the BODY
			$("#getModalBox #docName > span").text(docName);						// set name
			$("#getModalBox #docPrice > span").text(docPrice);						// set price as viewed
			$("#getModalBox #pid").val(pid);										// set Pid
			$("#getModalBox #OrderDesc").val(docName);								// set order description
			$("#getModalBox #OrderTotalNIS").val(docPrice.split(' ')[0]+"0000");	// set price in OrderTotalNIS
			
			if(isIE6){  // emulate position:fixed and open it at the right place first time
				$("#getModalBox").css('top', $(document).scrollTop()+$(window).height()/2-$("#getModalBox").height()/2);			
				//$("#getModalBox").aqFloater({ duration: 400, opacity: 1, attach: 'mid' });
			}	
				
			$("#getModalBox").fadeIn(fadeTime);
		}
	});
}

function viewToGetDoc(that){
	$("#docModalBox").html("").hide(500, function(){ 
		call_getModalBox(that);
	});
}


function getDoc(that){
	$("body").append('<div id="overlay" title="click to close" onclick="killDemoModal();" style="opacity:0; filter: alpha(opacity=0);"></div>');
	
	$("#overlay").fadeTo(fadeTime, 0.6, function(){
		call_getModalBox(that);
	});
}

function killDemoModal(){
	if( !$("#getModalBox").length && !$("#docModalBox").length ){  // in case the preloader is stuck or want to close it before getModalBox is opened	
		xhr.abort(); 
		$("#preloader").remove();
		$("#overlay").fadeOut(fadeTime, function(){ 
			$("#overlay").remove();
		});
	}
		
	if( $("#getModalBox").length ){
		$("#getModalBox").fadeOut(fadeTime, function(){ 
			$("#overlay").fadeOut(fadeTime, function(){ 
				$("#overlay, #getModalBox").remove();
			});
		});
	}
	if( $("#docModalBox").length ){
		$("#docModalBox").html("").hide(fadeTime, function(){ 
			$("#overlay").fadeOut(fadeTime, function(){ 
				$("#overlay, #docModalBox").remove();
			});
		});
	}
	
	$(window).unbind('resize');
	$(window).unbind('scroll');
}

/* Contact us validation */

function mark(item){
	$(item).addClass("marked");
}

function unmark(item){
	$(item).removeAttr("class");
}

function contactValidation(form){
	var jform = $(form);
	var method = jform.attr('method');
	var action = jform.attr('action');
	var data = {};
	
	var submit = true;
	var status = $("#form_status");
	var emailFilter=/^.+@.+\..{2,3}$/;
	var email_illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;

	status.html("").removeAttr("class");
	
	if (form.name.value.length < 2){
		mark(form.name);
		submit = false;
	} else unmark(form.name);
	
	if (!emailFilter.test(form['email'].value) || form['email'].value.match(email_illegalChars)){
		mark(form['email']);
		submit = false;
	} else unmark(form['email']);
	
	if (form.message.value.length < 4){
		mark(form.message);
		submit = false;
	} else unmark(form.message);
	
	if (!submit){
		status.addClass("error").text("אנא בידקו תקינות השדות המסומנים ונסו שנית");
		return false;
	}
		
//	$("#submit_btn").addClass("disabled").attr("disabled","disabled");
	status.text("שולח...");
	
	jQuery('*[name]', jform).each(function() {
			var t = jQuery(this);
			var val = (t.attr('type') == 'checkbox') ? (t.attr('checked') == true) ? 1 : 0 : t.val();
			data[t.attr('name')] = val;
	});
	
	jQuery[method](action, data, function(data) {
		if(data)
			status.html("").addClass("success");
		else
			status.addClass("error").text("בעיה בשליחה, נסה שנית");
	});

	return false;
}


function downloadValidation(form){
	var jform = $(form);
	var pid = form.pid.value;

	var submit = true;
	var status = $("#form_status");
	var emailFilter=/^.+@.+\..{2,3}$/;
	var email_illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;

	status.html("").removeAttr("class");
	
	if (form.name.value.length < 2){
		mark(form.name);
		submit = false;
	} else unmark(form.name);
	
	if (!emailFilter.test(form['email'].value) || form['email'].value.match(email_illegalChars)){
		mark(form['email']);
		submit = false;
	} else unmark(form['email']);
	
	if (!form.buy_tos.checked){
		submit = false;
	}
	
	if (!submit){
		status.addClass("error").text("אנא בידקו כי כל השדות מלאים ותקינים, ותקנון האתר אושר");
		return false;
	}
	
	form.action = "download.php?f=" + pid + ".pdf&name=" + form.name.value + "&email=" + form.email.value;

	return true;
}

function buyValidation(form){
	var jform = $(form);
	var pid = form.pid.value;

	var submit = true;
	var status = $("#form_status");
	var emailFilter=/^.+@.+\..{2,3}$/;
	var email_illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/;

	status.html("").removeAttr("class");
	
	if (form.name.value.length < 2){
		mark(form.name);
		submit = false;
	} else unmark(form.name);
	
	if (form.address.value.length < 5){
		mark(form.address);
		submit = false;
	} else unmark(form.address);
	
	if (form.phone.value.length < 5){
		mark(form.phone);
		submit = false;
	} else unmark(form.phone)
	
	if (!emailFilter.test(form['email'].value) || form['email'].value.match(email_illegalChars)){
		mark(form['email']);
		submit = false;
	} else unmark(form['email']);
	
	if (!form.buy_tos.checked){
		submit = false;
	}
	
	if (!submit){
		status.addClass("error").text("אנא בידקו כי כל השדות מלאים ותקינים, ותקנון האתר אושר");
		return false;
	}

	return true;
}

/* Images preloading */
var preloaded = new Array();
function preload_images() {
    for (var i = 0; i < preload_images.arguments.length; i++){
		preloaded[i] = new Image();
		preloaded[i].src = preload_images.arguments[i];
    };
};



preload_images(
    'images/getDocTitle.jpg',
	'images/closeBtn.gif',
	'images/ajax-loader.gif',
	'images/secure_buy.png',
	'images/trans-bg.png',
	'images/button1.png'
);
