/* standard small functions */
function $m(quem){
 return document.getElementById(quem)
}
function remove(quem){
 quem.parentNode.removeChild(quem);
}
function addEvent(obj, evType, fn){
 // elcio.com.br/crossbrowser
    if (obj.addEventListener)
        obj.addEventListener(evType, fn, false)
    if (obj.attachEvent)
        obj.attachEvent("on"+evType, fn)
}
function removeEvent( obj, type, fn ) {
  if ( obj.detachEvent ) {
    obj.detachEvent( 'on'+type, fn );
  } else {
    obj.removeEventListener( type, fn, false ); }
} 
/* THE UPLOAD FUNCTION */
function startUpload(form,url_action,id_element,html_show_loading,html_error_http){

 //testing if 'form' is a html object or a id string
 form = typeof(form)=="string"?$m(form):form;
 
 var erro="";
 if(form==null || typeof(form)=="undefined"){ erro += "The form of 1st parameter does not exists.\n";}
 else if(form.nodeName.toLowerCase()!="form"){ erro += "The form of 1st parameter its not a form.\n";}
 if($m(id_element)==null){ erro += "The element of 3rd parameter does not exists.\n";}
 if(erro.length>0) {
  alert("Error:\n" + erro);
  return;
 }

 //creating the iframe
 var iframe = document.createElement("iframe");
 iframe.setAttribute("id","temp");
 iframe.setAttribute("name","temp");
 iframe.setAttribute("width","0");
 iframe.setAttribute("height","0");
 iframe.setAttribute("border","0");
 iframe.setAttribute("style","width: 0; height: 0; border: none;");
 
 //add to document
 form.parentNode.appendChild(iframe);
 window.frames['temp'].name="temp"; //ie sucks
 
 //add event
 var carregou = function() { 
   removeEvent( $m('temp'),"load", carregou);
   var cross = "javascript: ";
   cross += "window.parent.$m('" + id_element + "').innerHTML = document.body.innerHTML; void(0); ";
   
   $m(id_element).innerHTML = html_error_http;
   $m('temp').src = cross;
   //del the iframe
   setTimeout(function(){ remove($m('temp'))}, 250);
   $("#loadingDiv").toggle(800);
   $("#features").toggle(800);
   setTimeout(function(){ $("#result").slideToggle(2400)}, 250);
   }
 addEvent( $m('temp'),"load", carregou);
 
 //properties of form
 form.setAttribute("target","temp");
 form.setAttribute("action",url_action);
 form.setAttribute("method","post");
 form.setAttribute("enctype","multipart/form-data");
 form.setAttribute("encoding","multipart/form-data");
 //submit
 form.submit();
 
 //while loading
 if(html_show_loading.length > 0){
  //form.parentNode.removeChild(form);
  //$m(id_element).innerHTML = html_show_loading;
  $("#dataDiv").toggle(800);
  $("#loadingDiv").fadeIn(2400);
 }
 
}

function doswitch(out,inn)
{
	$("#"+ out +"").slideToggle(800);
   setTimeout(function(){ $("#"+ inn +"").slideToggle(800)}, 790);
}

function showFX(id)
{
		if (id == 0)
		{ id = 'errors'; }
		$("#"+id+"").slideToggle(800);	
}

function moreUpload()
{
  $("#result").slideToggle(800);
  $("#dataDiv").slideToggle(2400);
  $("#features").slideToggle(2400);
}

function upload(id,type)
{
	var message = 'loading...';
	startUpload(id,'./?do='+type,'result',''+ message +'','');
}

function highlight(field)
{
    field.focus();
    field.select();
    var urlSwf = "./js/_clipboard.swf";
    var flashcopier = 'flashcopier';
    var divholder = document.createElement('div');
    divholder.id = flashcopier;
    document.body.appendChild(divholder);

    divholder.innerHTML = '';
    var divinfo = '<embed src="' + urlSwf + '" FlashVars="clipboard='+escape(field.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    divholder.innerHTML = divinfo;
    return false;
}

function toggle(mode) 
{
    switch (mode)
    {
        case 0:
			//show('mupload_fields');
			hide('remote_fields');
			$("#mupload_fields").fadeIn(1200);

            break;
        case 1:
            hide('mupload_fields', 'block');
			$("#remote_fields").fadeIn(1200);
            break;
        case 3:
            hide('bar_options', 'block');
			$("#wm_text").fadeIn(1200);
            break;
        case 4:
            hide('wm_text', 'block');
			$("#bar_options").fadeIn(1200);
            break;
        case 5:
            hide('bar_options_remote', 'block');
			$("#wm_text_remote").fadeIn(1200);
            break;
        case 6:
            hide('wm_text_remote', 'block');
			$("#bar_options_remote").fadeIn(1200);
            break;
    }
}
function show(id, type)
{
    var o = document.getElementById(id);
    if (o)
        o.style.display = type || '';
}

function hide(id)
{
    var o = document.getElementById(id);
    if (o)
        o.style.display = 'none';
}