/* impose.js*/

function basename(path, suffix) {
	var b = path.replace(/^.*[\/\\]/g, '');
	if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
		b = b.substr(0, b.length-suffix.length);
}
	return b;
}

function ImposeBeforeSend()
{
	$("#loading").text("Preparing document...");
}

// function ImposeComplete()
// {
// 	$("#loading").hide("fast");
// }
// 
function ImposeSuccess(result)
{
// 	$("#loading").show("fast");
	$("#loading").html(result);
// 	alert("B");
}

function initAjaxUpload()
{
	var options = { 
	target:        '#loading',   // target element(s) to be updated with server response 
	beforeSubmit:  ImposeBeforeSend,  // pre-submit callback 
	success:        ImposeSuccess// post-submit callback 
        // other available options: 
        //url:       url         // override for form's 'action' attribute 
        //type:      type        // 'get' or 'post', override for form's 'method' attribute 
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type) 
//         clearForm: true        // clear all form fields after successful submit 
//         resetForm: true        // reset the form after successful submit 
        // $.ajax options can be used here too, for example: 
        //timeout:   3000 
	}; 
	$('#formid').submit(function() { 
		$(this).ajaxSubmit(options); 
// 		alert("A");
		return false; }); 
}

function initPlan()
{
	$(".itemplan").click(
 	function()
	{
		var plan = $(this).attr("id");
		$("#plancombohidden").val(plan);
		$.get( "plan.php" ,
  			{ plan: plan },
     			function(data)
			{
				$('#plan').html(data);
			} 
			);
		return false;
	});

}

function initSelect()
{
	$(".grouplabel").click(function(){
		 var k = $(this).next();
		 var a = k.css("display");
		 if(a != "none")
		 {
			 k.hide("slow");
			 return false;
		 }
		 $(".listplan").hide("slow");
		 k.show("slow");
		return false;
	});
}

var butBBox = {x1:0,y1:0,x2:0,y2:0};
var posDrag={x:0, y:0};
var dragSnap = 5;
var isIn = false;
var debugBox = "";
function mI(event){
	var o = $("#sourcepdf");
	var offset = $("#sourcecontainer").offset();
	if(!isIn )
	{
		isIn = true;
		var self = $(this);
		var so = self.offset();
		butBBox.x1 = so.left + dragSnap ;
		butBBox.y1 = so.top + dragSnap ;
		butBBox.x2 = so.left + self.width() - dragSnap ;
		butBBox.y2 = so.top + self.height() - dragSnap ;
		debugBox = "[ "+ butBBox.x1 + " "+ butBBox.y1 + " "+ butBBox.x2 + " "+ butBBox.y2 + " ]";
				
	}
	if( event.pageX <  butBBox.x1
	|| event.pageX > butBBox.x2
	|| event.pageY < butBBox.y1
	|| event.pageY > butBBox.y2 )
	{
		isIn = false;
// 		$("#filename").text("OUT");
		$("#sourcepdf").css({"display": "none","left":0,"bottom":0});
		return;
	}
	var px = event.pageX - o.width()   + 10;
	var py = event.pageY - 5 ;
	o.css({
		"z-index":2,
  "display": "inline",
  "left":px  ,
  "top":py
	})
// 			$("#filename").text(  "MOVE");
		
} 
function mO(event){
// 	$("#filename").text(event.pageX +" "+ event.pageY + debugBox);
	if( event.pageX <  butBBox.x1
	|| event.pageX > butBBox.x2
	|| event.pageY < butBBox.y1
	|| event.pageY > butBBox.y2 )
	{
	isIn = false;
// 	$("#filename").text("OUT");
// 	$("#sourcepdf").css({"display": "none","left":0,"bottom":0});
	$("#sourcepdf").css({"left":0,"bottom":0});
	}
}
function initStyledUpload()
{
// 	$("#subbutton").hover(mI,mO);
	$("#subbutton").mousemove(mI);
	$("#subbutton").mouseout(mO);
	
	$("#sourcepdf").mousemove(mI);
	$("#sourcepdf").mouseout(mO);
	
	$("#sourcepdf").change(function(){
// 		alert( $(this).val() );
		$("#filename").text( basename( $(this).val() ));
	});
}

function subOut()
{
	$("#sourcepdf").css({
		"position":"absolute",
		"left": 0,
  		"bottom": 0
	});
}


function initImpose() { 
	initAjaxUpload();
	initStyledUpload();
	initSelect();
	initPlan();
}

$(document).ready(initImpose); 

