var map = null;
var latLong = null;
var zoom = 1;

function GetMap() {
	map = new VEMap('map');
	map.LoadMap();

	map.SetZoomLevel(zoom);

	// zoom to cursor and center
	map.SetMouseWheelZoomToCenter(false);

	// document.getElementById('txtZoom').value = zoomLevel;
	// map.AttachEvent("onclick", GetLatLong);
	// latLong = map.GetCenter();
	// divInfo.innerHTML = latLong;
}

function UnloadMap() {
	if (map != null) {
		map.Dispose();
	}
}

/*
 * validators
 */

function toHex(N) {
	if (N == null)
		return "00";
	N = parseInt(N);
	if (N == 0 || isNaN(N))
		return "00";
	N = Math.max(0, N);
	N = Math.min(N, 255);
	N = Math.round(N);
	return "0123456789ABCDEF".charAt((N - N % 16) / 16)
			+ "0123456789ABCDEF".charAt(N % 16);
}
var flag = true;
function RGBtoHex(RGB) {
	var row = RGB.match(/\d+/g);
	// alert(row);
	return "#" + toHex(row[0]) + toHex(row[1]) + toHex(row[2]);
}

var bgColor = "";

function InValid(element, messages, action) {
	if (flag) {
		if ($j.browser.mozilla)
			bgColor = RGBtoHex($j(element).css('backgroundColor'));
		else
			bgColor = $j(element).css('backgroundColor');

		flag = false;
	}

	if ($j(element).val().length > 0) {
		$j("." + action).remove();
		for ( var i = 0; i < messages.length; i++) {
			var p = document.createElement('p');
			$j(p).attr( {
				'class' : action
			});
			$j(p).html(messages[i]);
			$j(element).parent('td').next('td').append(p);
		}

		$j(element)
				.css(
						{
							background : '#FFFF99 url(/images/design/warning.png) no-repeat right'
						});
	} else {
		$j("." + action).remove();
		if (!$j(element).parent('td').next('td').html().length > 0)
			$j(element).css( {
				'backgroundColor' : bgColor,
				'backgroundImage' : 'none'
			});
	}

}

function ok(element, action) {

	$j("." + action).remove();
	if (!$j(element).parent('td').next('td').html().length > 0)
		$j(element).css( {
			'backgroundColor' : bgColor,
			'backgroundImage' : 'none'
		});

}
function sendRequest(event, action, flag, data) {
	var min = 0;
	var max = 0;
	var table = '';
	var field = '';
	var password = '';
	if (flag == true) {
		min = data.min;
		max = data.max;
		table = data.table;
		field = data.field;
		password = data.password;
//		console.log(data.password);
	}
	var url = "/service/" + action;

	$j.post(url, {
		item : $j(event.target).val(),
		min : min,
		max : max,
		table : table,
		field : field,
		password : password
	}, function(data) {
		if (data.validMessage == 'ok') {
			ok(event.target, action);
		} else {
			InValid(event.target, data.validMessage, action);

		}

	}, 'json');
}

function checkAlnum(event) {

	sendRequest(event, 'alnum', false);

}
function checkInt(event) {
	// alert('test');
	sendRequest(event, 'int', false);

}
var max = 0;
var min = 0;
function checkLength(event) {

	switch (event.target.id) {
	case 'username':
		min = 4;
		max = 30;
		break;
	case 'realname':
		min = 4;
		max = 100;
		break;
	case 'name':
		min = 0;
		max = 20;
	case 'units':
		min = 0;
		max = 20;
		break;
	}
	var data = new Array();
	data['min'] = min;
	data['max'] = max;

	sendRequest(event, 'checklength', true, data);

}

function realreg(event) {
	sendRequest(event, 'realreg', false);
}
var pass = '';
function password(event) {
	sendRequest(event, 'password', false);

}
function getPassword(event) {
	pass = $j(event.target).val();
}
function matchPass(event) {
	var data = new Array();
	data['password'] = pass;
	sendRequest(event, 'equal', true, data);
}

function email(event) {

	sendRequest(event, 'email', false);
}

function phone(event) {
	sendRequest(event, 'phone');
}

function validSite(event) {
	sendRequest(event, 'website', false);
}
function answer(event) {
	sendRequest(event, 'quest', false);
}

var table = '';
var field = '';
function checkRecord(event) {
	switch (event.target.id) {
	case 'username':
		table = 'users';
		field = 'username';

		break;
	case 'email':
		table = 'users';
		field = 'email';

		break;
	case 'name':
		table = 'depots';
		field = 'name';

	}
	var data = new Array();
	data['table'] = table;
	data['field'] = field;
	sendRequest(event, 'dbrecord', true, data);

}

function checkBic(event) {
	sendRequest(event, 'bic', false);
}

function checkPrice(event) {
	sendRequest(event, 'digits', false);
}
function showPopUp(text,title){
    var DialogMessage;
    DialogMessage = new dijit.Dialog({
			content:text,
	        title:title,
	        dragRestriction:false,
	        preload:true,
	        style:"width:350px;text-align:left",
	        onCancel:function(e){
          dijit.byId('pop-up').destroyRecursive(false);
          //this.destroyRecursive(false);
	        }
	    },dojo.create('div',{id:'pop-up'},document.body,'last'));
            DialogMessage.show();
            //if($j.browser.msie)
   //$j('.dojoxRatingStar').css({backgroundRepeat:'no-repeat'});
            return DialogMessage;
}
var DialogMessage;
var EditorMessage;
var titleMessage;
var sendButtonMessage;
var flag=true;
var alertDialog;
function createWidgets(action){
		alertDialog = new dijit.Dialog({
		content:should_be_filled,
		title:empty_fields,
		onCancel:function(e){

}
},dojo.create("div",{id:"alertDialog"},document.body,"last")); 
	if(action!="tickets")
	{
            if(action!='tick')
                {
		DialogMessage = new dijit.Dialog({
			content:[dojo.create('label',
		                  		{innerHTML:title_quest,'class':'label_title'},document.body,'last'),
		                  		dojo.byId("title-reply"),
		                  		dojo.byId("emp"),dojo.byId("editor"),
		                  		dojo.byId("button-reply")],
	        title:reply_thread+" "+toName,
	        dragRestriction:true,
	        preload:true,
	        style:"width:550px;text-align:left",
	        onCancel:function(e){
			
	        }
	    },"dialog");
            }
            else
                {
                    	DialogMessage = new dijit.Dialog({
			content:[       		dojo.byId("emp"),dojo.byId("editor"),
		                  		dojo.byId("button-reply")],
	        title:reply_thread+" "+toName,
	        dragRestriction:true,
	        preload:true,
	        style:"width:550px;text-align:left",
	        onCancel:function(e){

	        }
	    },"dialog");
                }
	}
	else
	{
		dojo.style(dojo.byId("levels_holder"),{'visibility':'visible'});
		DialogMessage = new dijit.Dialog({
			content:[dojo.create('label',
		                  		{innerHTML:title_quest,'class':'label_title'},document.body,'last'),
		                  		dojo.byId("title-reply"),
		                  		dojo.byId("levels_holder"),
		                  		dojo.byId("emp"),dojo.byId("editor"),
		                  		dojo.byId("button-reply")],
	        title:createTicket,
	        preload:true,
	        style:"width:550px;text-align:left",
	        onCancel:function(e){
			
	        }
	    },"dialog"); 
		
		
	}
//	
	EditorMessage = new dijit.Editor({
		extraPlugins:['subscript','superscript','dijit._editor.plugins.AlwaysShowToolbar'],
      	height:"150px"
	},dojo.byId("editor"));
	  titleMessage = new dijit.form.TextBox({
        style:"margin-left:5px",
        selected:false
           },"title-reply");
	 sendButtonMessage = new dijit.form.Button({
        label:send,
        
        style:{display:"block",marginTop:"10px"}
        },"button-reply");
}
//dojo.addOnLoad(function(){
//	EditorMessage = new dijit.Editor({
////		extraPlugins:['subscript','superscript','dijit._editor.plugins.AlwaysShowToolbar'],
//      	height:"150px"
////      	style:"font:14px Tahoma;margin-bottom:15px"
//	},dojo.byId("editor"));
//});
function replyTo(action){
    var toaction = 'sendquestion';
    
	if(flag)
	{
		flag=false;
                if(action!='tick')
		createWidgets('index');
            else
                {
                     createWidgets('tick');
                      toaction = 'replyticket';
                      titleMessage.attr('style','display:none');
                }
               
	}	
	
	DialogMessage.show();
//	dojo.place(EditorMessage,dojo.byId("grid_container"),'first');
	var handle = dojo.connect(sendButtonMessage,"onClick",function(){
		if(EditorMessage.getValue().length>0&&titleMessage.getValue().length>0&&action!='tick'||EditorMessage.getValue().length>0&&action=='tick')
			{
			var StandBy = showLoading(dojo.byId('dialog'));
			StandBy.show();
			dojo.xhrPost({
			url:"/service/"+toaction,
			handleAs:"json",
			content:{message:EditorMessage.getValue(),title:titleMessage.getValue(),
			linked_to:linkTo,to:toId,ticket_id:ticket_id},
			load:function(data,ioArgs){
				StandBy.hide();
				StandBy.destroyRecursive();
				dojo.disconnect(handle);
				DialogMessage.hide();
				EditorMessage.setValue("");
				titleMessage.setValue("");
			},
			error:function(data,ioArgs){alert("some error occured");
			StandBy.hide();
			StandBy.destroyRecursive();
			}
		});
	}
	else
		{
		alertDialog.show();
		}
	});
//	console.log();
}
var toName = '';
var toId = '';
var linkTo = '';
var ticket_id = null;
function populateMessage(e, translations, direction){
	e.preventDefault();
dojo.style(dojo.byId('grid_container'),{'height':'auto'});
        var cell_grid = 'grid_containerHdr3';
        var action = 'getlink';
        if(direction=='tickets')
            {
                cell_grid = 'grid_containerHdr2';
                action = 'getticket';
            }
	if(e.cell.id)
	{
	if (e.cell.id == cell_grid) {
		
		var id = e.rowNode.getElementsByTagName('a')[1].id;
                ticket_id = id;
		$j(dojo.query(".dojoxGridMasterView")[0]).hide('blind', 500);

		dojo.xhrGet( {
			url : "/service/"+action+"/" + id,
			handleAs : "json",
			load : function(response, ioArgs) {

				var mesContainer = dojo.create('div', {
					id : 'mes-container'
				}, dojo.byId("grid_container"), 'first');
				var container = new dijit.layout.AccordionContainer( {
					closable : true,
					doLayout : true,
					style:"text-align:left"
				}, "mes-container");
				var flagAuthor = true;
				
				for ( var n in response.messages) {
					if(flagAuthor)
						{
							if(user_message_id!=response.messages[n].from_id)
								{
									toId = response.messages[n].from_id;
									toName = response.messages[n].from_name;
									linkTo = response.messages[n].link_id;
									flagAuthor = false;
								}
                                                                
						}
					var from;
					var bold = "normal";
					if (direction == "inbox") {
						if(user_message_id==response.messages[n].to_id)
							bold="bold";
						
						from = "<span style='font-weight:"+bold+"' class='from_name'>"
								+ response.messages[n].from_name + " -> "
								+ response.messages[n].to_name + "</span>";
					}
					else
					{
						if(user_message_id==response.messages[n].from_id)
							bold="bold";
						
						from = "<span style='font-weight:"+bold+"' class='from_name'>"
						+ response.messages[n].from_name + " -> "
						+ response.messages[n].to_name + "</span>";
					}
					
					var content = dojo.create('div', {
						'class' : "message_body",
						innerHTML :"<div id='"+response.messages[n].message_id+"' class='content_message'>"+response.messages[n].message+"</div>"});
					;
					var date = new Date();
					date.setTime(parseInt(response.messages[n].date)*1000);
					var dateFormat = "<span class='message_date'>"+date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+"</span>";
					var child = new dijit.layout.AccordionPane( {
						title : from + " ::" + " <span class='title_message'>"
								+ response.messages[n].title + "</span> <span style='float:right'>"+dateFormat+"</span>",
						height : "200px",
						closable : false,
						style : "font-size:14px,height:250px"
					}, content);
					container.addChild(child);
					
				}
				container.startup();
$j("#mes-container").show('blind',500);

//console.log(dojo.query(".reply"));
//				if(!dojo.exists(dojo.byId('buttons-holder')))
//                                    {
				var header = dojo.create('div', {
					id:"buttons-holder",
					style : "height:30px;width:100%;position:relative"
				}, dojo.byId("mc_content"), "first");
//                                }
				var backButton = new dijit.form.Button({
					label : translations.back,
					style : "float:right;margin-right:70px"
				}, dojo.create('button', {
					style : 'font-style:italic;'
				}, dojo.byId("buttons-holder"), "first"));
				
				var ReplyButton = new dijit.form.Button({
					label : translations.reply,
					style : "float:right;margin-right:40px"
				}, dojo.create('button', {
					style : 'font-style:italic;'
				}, dojo.byId("buttons-holder"), "first"));
				
				dojo.connect(ReplyButton,"onClick",function(){
                                    if(direction=='tickets')
					replyTo('tick');
                                    else
                                        replyTo();
				});
				
				dojo.connect(backButton,"onClick",function(){
					$j("#mes-container").hide('blind',500,function(){
						container.destroyRecursive();
						
					});
					setTimeout(function(){
						$j(dojo.query(".dojoxGridMasterView")[0]).show('blind',500);
						dojo.destroy(dojo.byId("buttons-holder"));
					},600);
				});
				if(dojo.isIE)
				{
					dojo.style(dojo.byId("buttons-holder"),'height','30px');
				}
			},
			error : function(response, ioArgs) {
				alert("some error occured")
			}
		});

	}
	}
}

function mark(grid,mark){
	var rows = grid.selection.getSelected();
	var ids = [];
	for(var i=0;i<rows.length;i++){
		ids.push(rows[i].link_id[0]);
	}
	ids = dojo.toJson(ids);
	dojo.xhrPost({
		url:"/service/mark",
		handleAs:"json",
		content:{ids:ids,mark:mark},
		load:function(data,ioArgs){
			for(var v =0;v<dojo.fromJson(ids).length;v++){
				if(mark=="read")
				dojo.style(dojo.byId(dojo.fromJson(ids)[v]+"indic"),{fontWeight:"normal"});
				else
					dojo.style(dojo.byId(dojo.fromJson(ids)[v]+"indic"),{fontWeight:"bold"});
			}
		},
		eror:function(data,ioArgs){
			alert("some error occured");
		}
	});
}
function clickRead(id){
	var arrayId = new Array(id);
	var ids = dojo.toJson(arrayId);
	dojo.xhrPost({
		url:"/service/mark",
		handleAs:"json",
		content:{ids:ids,mark:"read"},
		load:function(data,ioArgs){
			dojo.style(dojo.byId(id+"indic"),{fontWeight:"normal"});
		},
		eror:function(data,ioArgs){
			alert("some error occured");
		}
	});
}
function clickReadTicket(id){
	var arrayId = new Array(id);
	var ids = dojo.toJson(arrayId);
	dojo.xhrPost({
		url:"/service/readedticket",
		handleAs:"json",
		content:{id:id},
		load:function(data,ioArgs){
			dojo.style(dojo.byId(id+"indic"),{fontWeight:"normal"});
		},
		eror:function(data,ioArgs){
			alert("some error occured");
		}
	});
}

function deleteLink(grid,actionName){
	var rows = grid.selection.getSelected();

//        console.log(rows[0].id[0]);
//        return;
//        console.log(rows);
//        return;
	var ids = [];
        var action = 'deletelink';
        if(actionName=='tickets')
            action='deletetickets'
        if(actionName=='notifications')
            action='deletenotification'
	for(var i=0;i<rows.length;i++){

            if(actionName=='notifications')
               ids.push(rows[i].id[0]);
           else
		ids.push(rows[i].link_id[0]);
	}
	ids = dojo.toJson(ids);
//        console.log(ids);
//        return;
	dojo.xhrPost({
		url:"/service/"+action,
		handleAs:"json",
		content:{ids:ids},
		load:function(data,ioArgs){
			var rowHeight = 0;
			var allHeight = grid.domNode.offsetHeight;
			for(var v =0;v<rows.length;v++){
                            
				rowHeight += grid.getRowNode(rows[v]._0).offsetHeight;
				dojo.destroy(grid.getRowNode(rows[v]._0));
			}
			
			dojo.animateProperty({
				node:grid.domNode,
				properties:{
				height:allHeight-rowHeight
			},
			duration:500,
                        onEnd:function(){
                            
                        }
			}).play();
		},
		eror:function(data,ioArgs){
			alert("some error occured");
		}
	});
}

function deleteSent(grid){
	var rows = grid.selection.getSelected();
	var ids = [];
	for(var i=0;i<rows.length;i++){
		ids.push(rows[i].link_id[0]);
	}
	ids = dojo.toJson(ids);
	dojo.xhrPost({
		url:"/service/deletesent",
		handleAs:"json",
		content:{ids:ids},
		load:function(data,ioArgs){
			var rowHeight = 0;
			var allHeight = grid.domNode.offsetHeight;
			for(var v =0;v<rows.length;v++){
				rowHeight += grid.getRowNode(rows[0]._0).offsetHeight;
				dojo.destroy(grid.getRowNode(rows[0]._0));
			}
			
			dojo.animateProperty({
				node:grid.domNode,
				properties:{
				height:allHeight-rowHeight
			},
			duration:500
			}).play();
		},
		eror:function(data,ioArgs){
			alert("some error occured");
		}
	});
}

function showInfo(){
  $j(".link_info").toggle(function(e){
    e.preventDefault();
    var block = $j(e.target).next('div');
    // $j(e.target).next('div').css({'display':'block'});
    block.show('slide',500);
    console.log();
  },function(e){
    e.preventDefault();
    var block = $j(e.target).next('div');
    // $j(e.target).next('div').css({'display':'block'});
    block.hide('slide',500);
    console.log();
  });
}

function showLoading(elem){
  var standby = new dojox.widget.Standby({
      target: elem
  });
   document.body.appendChild(standby.domNode);
  standby.startup();
  return standby;
}

function deleteBids(grid,loading){
    var standBy = showLoading(loading);
    standBy.show();
    var rows = grid.selection.getSelected();
   
var bidsToSend = [];
    for(var i=0;i<rows.length;i++)
        {
            bidsToSend.push(rows[i].bid_id[0]);
        }

         dojo.xhrPost({
             url:'/service/deletebids',
             handleAs:'json',
             content:{ids:dojo.toJson(bidsToSend)},
             load:function(data,ioArgs){
                  standBy.show();
                  standBy.destroyRecursive();

                  var rowHeight = 0;
			var allHeight = grid.domNode.offsetHeight;
			for(var v =0;v<rows.length;v++){

				rowHeight += grid.getRowNode(rows[v]._0).offsetHeight;
				dojo.destroy(grid.getRowNode(rows[v]._0));
			}

			dojo.animateProperty({
				node:grid.domNode,
				properties:{
				height:allHeight-rowHeight
			},
			duration:500,
                        onEnd:function(){

                        }
			}).play();
             },
             error:function(data,ioArgs){
                 standBy.show();
                 standBy.destroyRecursive();
             }
         });
}
