if (typeof(cm) == "undefined") cm = {};

cm.core = {
	alert : function(_text, _opt){
		var _o = $.extend(this.defaults.dlgOpts, _opt);
		var id = _o.id?_o.id:"alert_"+ (Math.round(Math.random() * 1000));
		var ht = "<div id='"+id+"' />";
		$("body").append(ht);
		$("#"+id).dialog(_o);
		$("#"+id).html(_text);
	},
	
	box : function(container_id, _opt){
		var _o = $.extend(this.defaults.dlgOpts, _opt);
		var id = _opt.id?_opt.id:"box_"+ (Math.round(Math.random() * 1000));
		var obj = $("#"+container_id).clone();
		var ht = "<div id='"+id+"' />";
		$("body").append(ht);
		$("#"+id).dialog(_o);
		$("#"+id).append(obj.html());
	},
	
	
	defaults : {
		dlgOpts : {
			title:"Seek4Cars",
			width: 300,
			heaight:200,
			modal:true,
			resizable:false,
			buttons:{
				"OK":function(){$(this).dialog("close");}
			}
		}
	}
}

cm.alert = function(text, _opt){
	cm.core.alert(text, _opt);
}
cm.box = function(container_id, _opt){
	cm.core.box (container_id, _opt);
}

cm.postForm = function(_formid, _o){
	var ht='';
	for (var i in _o.data){
		ht += "<input type='hidden' name='"+i+"' value='"+_o.data[i]+"' />";
	}
	$("#"+_formid).append(ht);
	$("#"+_formid)[0].submit();
}
cm.post = function(_o){
	if(typeof(_o.target)=="undefined") {
		_o.target = "_self";
	}
	var ht = "<form action='"+_o.url+"' method='post' id='post-back-form' target='"+_o.target+"'>";
	for (var i in _o.data){
		ht += "<input type='hidden' name='"+i+"' value='"+_o.data[i]+"' />";
	}
	ht += "</form>";
	$("body").append(ht);
	$("#post-back-form")[0].submit();
}
//http://www.filamentgroup.com/lab/jquery_plugin_for_requesting_ajax_like_file_downloads/
cm.download = function(url, data, method, callback){
	var inputs = '';
	var iframeX;
	var downloadInterval;
	if(url && data)
	{
		// remove old iframe if has
		if($("#iframeX")) $("#iframeX").remove();
		// creater new iframe
		iframeX= $('<iframe src="[removed]false;" name="iframeX" id="iframeX"></iframe>').appendTo('body').hide();
		if($.browser.msie)
		{
			downloadInterval = setInterval(function()
			{
				// if loading then readyState is “loading” else readyState is “interactive”
				if(iframeX&& iframeX[0].readyState !=="loading")
				{
					callback();
					clearInterval(downloadInterval);
				}
			}, 23);
		} else 
		{
			iframeX.load(function(){
				callback();
			});
		}

		//split params into form inputs
		$.each(data, function(p, val)
		{
			inputs+='<input type="hidden" name="'+ p +'" value="'+ val +'" />';
			
		});
		//create form to send request
		$('<form action="'+ url +'" method="'+ (method||'post') + '" target="iframeX">'+inputs+'</form>').appendTo('body').submit().remove();
	};
}; 

cm.WaitSign = {
	signs : [],
	parent : null,
	
	show : function(id, forceCreate, _o){
		_o = typeof(_o)=="undefined"?{}:_o;
		if (forceCreate || $("#"+id+"_wait").length==0) this.signs[id] = this.create(id,_o);
		this.signs[id].css("height", $("#"+id).height());
		var d = typeof(_o.delay)!="undefined"?_o.delay:0;
		this.signs[id].show(d);
	},
	hide:function(id, delay){
		var d = typeof(delay)!="undefined"?delay:0;
		$("#"+id+"_wait").hide(d, function(){$("#"+id+"_wait").remove();});
	},
	create : function(id, _o){
		var container = $("#"+id);
		container.css("position","relative");
		var css = typeof(_o.css)!="undefined"?_o.css:"";
		var ht="<div id='"+id+"_wait' class='wait-sign "+css+"'>&nbsp;</div>";
		container.append(ht);
		var el = $("#"+id+"_wait");
		return el;
	}
}

cm.updateSelect = function(ddl, data){
	ddl.options.length = 0;
	var l = data.length;
	for (var i=0;i<l;i++){
		ddl.options.add(new Option(data[i].value, data[i].key));
	}
}

