/**
 * @author lyykfi
 $(this).animate({transform: 'rotate(15deg)'}, 1000); */

 //Cufon.replace('test', { fontFamily: 'test',hover: true });
 
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
var IE7 = false /*@cc_on || @_jscript_version == 5.7 @*/;
var gteIE7 = false /*@cc_on || @_jscript_version >= 5.7 @*/;
var isMSIE = /*@cc_on!@*/false;
 
resize_size = new Object();

function rotateLine(el) {
	
	if($(el).hasClass("left")) {
		$(el).removeClass("left");
		$(el).addClass("top");
	} else {
		$(el).removeClass("top");
		$(el).addClass("left");
	}
	
	setLineResize(el);
	el_2 = el.replace(/#/, '');
	
	var event = jQuery.Event("resize");

	if(resize_size[el_2]) {
		$(el+" .dragable2").css("height",resize_size[el_2]["width"]);
		$(el+" .dragable2").css("width",resize_size[el_2]["height"]);
		
		w1 = resize_size[el_2]["width"];
		h1 = resize_size[el_2]["height"];
		
		resize_size[el_2]["height"] = w1;
		resize_size[el_2]["width"] = h1;
	} else {
		$(el+" .dragable2").css("height","10px");
		$(el+" .dragable2").css("width","50px");
		
		resize_size[el_2] = { "width": "50px", "height": "10px" };
	}
}

function setLineResize(el) {
	if($(el).hasClass("left")) {
		$(el+' .dragable2').css("wight", "10px");
		
		$(el+' .dragable2').resizable('option', 'maxWidth', 10);
		$(el+' .dragable2').resizable('option', 'maxHeight', 100005);
	} else {
		$(el+' .dragable2').css("height", "10px");
		
		$(el+' .dragable2').resizable('option', 'maxHeight', 10);
		$(el+' .dragable2').resizable('option', 'maxWidth', 100005);
	}
}

if(isMSIE) {

	function nocontextmenu() { 
		event.cancelBubble = true;
		event.returnValue = false; 
		return false; 
	} 

	document.oncontextmenu = nocontextmenu;
}

function getCountElement() {
	count_elem = 1;
	
	$.each( $("#dimension .item"), function(i, n){
		count_elem += 1;
	});

	return count_elem;
}

function createDimensionElementAppendText(numer, type, width, height, top, left, text, line_style) { 
	if(type=="box") {
		append_text = '<div style= id="item_'+numer+'" class="item '+type+' dragable dragable"><div class="dragable2"><textarea style_text= id="item_'+numer+'_t">text1</textarea></div></div>';
	} else {
		append_text = '<div style= id="item_'+numer+'" class="item '+type+' '+line_style+' dragable dragable'+numer+'"><div style_line= class="dragable2"></div></div>';
	}
	
	if(width != 0) {
		if(type=="box") {
			append_text = append_text.replace(/style_text=/, 'style="width:'+width+'px; height:'+height+'px;"');
			append_text = append_text.replace(/style=/, 'style="top:'+top+'; left:'+left+';"');
		} else {
			append_text = append_text.replace(/style_line=/, 'style="width:'+width+'px; height:'+height+'px;"');
			append_text = append_text.replace(/style=/, 'style="top:'+top+'; left:'+left+';"');
		}
	} else {
		append_text = append_text.replace(/style=/, 'style="top:'+top+'; left:'+left+';"');
		append_text = append_text.replace(/style_text=/, '');
		append_text = append_text.replace(/style_line=/, 'style="width:10px; height:50px;"');
	}

	append_text = append_text.replace(/text1/, text);
	
	return append_text;

}

function addDimensionElementToTools(numer, type, width, height, top, left, text, line_style) {
	
	append_text = createDimensionElementAppendText(numer, type, width, height, top, left, text, line_style);
	
	append_text = append_text.replace(/item /, 'new_item ');
	append_text = append_text.replace(/item/, 'new_item');
	append_text = append_text.replace(/textarea/, 'div');
	
	$("#newElement").append(append_text); 
	
	$('#new_item_'+numer).draggable({helper:'clone', opacity : 0.7});
}

function addDimensionElementToDimension(numer, type, width, height, top, left, text, line_style) {
	
	append_text = createDimensionElementAppendText(numer, type, width, height, top, left, text, line_style);
	
	$("#dimension").append(append_text); 
	
	$('#item_'+numer).draggable();
	
	if(type=="box") {
		$('#item_'+numer+' .dragable2').resizable();
	} else {
		$('#item_'+numer+' .dragable2').resizable(
			{
			   stop: function(event, ui) {
			   		resize_size['item_'+numer] = ui.size;
			   }
			}
		);
		
		setLineResize('#item_'+numer);
	}
	
	if(type=="box") {
		$('#item_'+numer).contextMenu({
        	menu: 'popupMenu2' },
        		function(action, el, pos) {
					if (action == "delete") {
						$("#"+$(el).attr("id")).remove();
					}
    		});
   	} else {
   		$('#item_'+numer).contextMenu({
			menu: 'popupMenu1' },
			function(action, el, pos) {
				if (action == "rotate") {
					rotateLine("#"+$(el).attr("id"));
				}
			
				if (action == "delete") {
					$("#"+$(el).attr("id")).remove();
				}
		});
   	}
}

function loadStruct() {
	$.each( $("#dimension .item"), function(i, n){
				i = i+1;
			 	$("#item_"+i).remove();
			});
		
			if($('#loadInput').attr("value")) {
				parsed_text = $('#loadInput').attr("value");
				parsed_objects = parsed_text.split(";;");
		
				$.each(parsed_objects, function(i, n){
			
					if(parsed_objects[i] != "") {
						elem = parsed_objects[i].split("::");
				
						addDimensionElementToDimension(elem[0],elem[1],elem[2],elem[3],elem[4],elem[5],elem[6],elem[7]);
				
						if(elem[0] == "line") {
							setLineResize(el);
						}
					}
				});
			}
}

$(document).ready(function(){

	addDimensionElementToTools(1,"line",0,0,"10px","10px"," ","left");
	addDimensionElementToTools(2,"box",150,50,"10px","60px"," ","left");
	
	$("#newElement textarea").attr("disabled", "disabled");
	
	$("#dimension").droppable({
		accept: ".new_item",
		
		drop: function(ev, ui) {
			if($(ui.draggable).hasClass("box")) {
				type="box";
			} else {
				type="line";
			}
		 	
		 	addDimensionElementToDimension(getCountElement(),type,0,0,ui.position["top"]+"px",ui.position["left"]+"px"," ","left");
		}
	 	
	});

	$(".addLine").click(
		function() {
			addDimensionElementToTools(getCountElement(),"line",0,0,10,10," ","left");
		}
	);
	
	$(".addBox").click(
		function() {
			addDimensionElementToTools(getCountElement(),"box",0,0,10,10," ","left");
		}
	);
	
	$(".save").click(
		function() {
			saveText = "";
			
			$.each( $("#dimension .item"), function(i, n){
				i = i+1;
				if($("#item_"+i).hasClass("box")) {
				  	type="box";
				} else {
				  	type="line";
				}
				
			  	saveText += i+"::"+type+"::"+$("#item_"+i).width()+"::"+$("#item_"+i).height()+"::"+$("#item_"+i).css("top")+"::"+$("#item_"+i).css("left");
			
				if($("#item_"+i).hasClass("box")) {
					saveText += "::"+$("#item_"+i).find('textarea').val();
				} else {
					saveText += "::"+" ";
				}
				
				if($("#item_"+i).hasClass("line")) {
					if($("#item_"+i).hasClass("left")) {
						saveText += "::"+"left"+";;";
					} else {
						saveText += "::"+"top"+";;";
					}
				} else {
					saveText += "::"+" "+";;";
				}
			});
			
			
			$('#saveInput').attr("value",saveText);
			
			
			$("#struktForm").submit();

		}
	);
	
	
	$(".load").click(
		function() {
			loadStruct();
		}
	);
});


