//=============================================================================
//=============================================================================
function GetRnd(){
  var x = '';
  var i;
//  for(i=0; i<12; i++)
//    x += (Math.floor(Math.random( )*10) + '');
  return x;
}

function shortShowFlash(flash_id, flash_file, flash_vars, background_color){
	if (background_color == '') background_color = 'bb0000';

  AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','100%','height','100%','src',flash_file,'salign','lt','align','middle','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie',flash_file, 'FlashVars', flash_vars ); //end AC code
}

function showFlash(o){
  AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','width','100%','height','100%','src',o.name,'salign','lt','align','middle','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie',o.name ); //end AC code
}




//=================================================================================================
// для DRAG'N'DROP -------------------------------------------------------------------------------
var drag = false;
var objX, objY, mouseX, mouseY;
var newImage, newImageWidth, newImageHeight;
var Added = new Array();
var nAdded = 0;
var curDragElement;
function getNum(txt){
  var num = txt.substr(0, txt.indexOf('p'));
  return num*1;
}
function Drag(){
  //fnShowProps(event.srcElement.style, event.srcElement.id+'.style');

  if(event.srcElement.parentElement.id == 'drag_bar' )
    return;

  if(!drag){
    objX = getNum(getElementComputedStyle(event.srcElement, "left"));
    objY = getNum(getElementComputedStyle(event.srcElement, "top"));

    drag_status.innerText = 'START DRAG: '+event.srcElement.id+' left:'+objX+' top:'+objY;
    mouseX = event.x;
    mouseY = event.y;
    curDragElement = event.srcElement;
    if(!curDragElement.id)
      curDragElement.id = 'element'+nAdded;

    var notAdded = true;
    for(i=0; i<nAdded; i++)
      if(Added[i]==curDragElement.id)
        notAdded = false;
    if(notAdded && curDragElement.id != 'drag_bar'){
      Added[nAdded] = curDragElement.id;
      nAdded ++;
    }
    drag = true;
  }else{
    drag_status.innerText = 'DRAG STOPPED';
    curDragElement = null;
    drag = false;
  }
}
function Go(){
  if(!drag) return;
  curDragElement.style.left = objX + (event.x - mouseX);
  curDragElement.style.top = objY + (event.y - mouseY);
  //event.cancelBubble = true;
}
function GetStyles(){
  css_src.value = '';
  html_src.value = '';
  for(i=0; i<nAdded; i++){
    var iImg = document.getElementById(Added[i]);
    var iWidth = getElementComputedStyle(iImg, "width");
    var iHeight = getElementComputedStyle(iImg, "height");
    var iPosition = getElementComputedStyle(iImg, "position");
    var iLeft = getElementComputedStyle(iImg, "left");
    var iTop = getElementComputedStyle(iImg, "top");
    var iBgImg = getElementComputedStyle(iImg, "background-image");
    css_src.value +=  '#'+Added[i]+' {width:'+iWidth+'; height:'+iHeight+'; position:'+iPosition+'; left:'+iLeft+'; top:'+iTop+'; background-image: '+iBgImg+';} \n';
//    css_src.value +=  '#'+Added[i]+' {'+iImg.style.cssText+'} \n';
    html_src.value += '<DIV id='+Added[i]+'></DIV> \n';
  }
}
function AddImg(){
  if(filename.value == '') return;

  test_img.src = filename.value;
  var newElement = filename.value;
  var i0 = newElement.lastIndexOf('\\');
  newElement = newElement.substr(i0+1);
  var i1 = newElement.lastIndexOf('.');
  newElement = newElement.substr(0, i1);

  var my_body;
  if(newParent.value == 'body'){
    my_body = document.getElementsByTagName('body');
    my_body = my_body[0];
  }else{
    my_body = document.getElementById(newParent.value);
  }
  my_body.innerHTML += '<DIV class=test_div id='+newElement+' style="background-image:url('+imgPath.value+filename.value+'); font-size:12px;">'+newElement+'</DIV>';

  newImage = newElement;

  Added[nAdded] = newElement;
  nAdded ++;
}
function ResizeNewImg(){
  obj = document.getElementById(newImage);
  obj.style.width = newImageWidth+'px';
  obj.style.height = newImageHeight+'px';
}
function ClearAll(){
  drag = false;
  nAdded = 0;
  Added = new Array();
  drag_status.innerText = 'CLEARED';
}
function GetClearUrl(){
  var res = document.URL + '';
  if(res.indexOf('?'))
    res = res.substr(0, res.indexOf('?'));
  return res;
}

// полезности с http://www.tigir.com/javascript.htm
function fnShowProps(obj, objName){
    var result = "";
    for (var i in obj) // обращение к свойствам объекта по индексу
        result += objName + "." + i + " = " + obj[i] + "<br />\n";
    document.write(result);
}

function getElementComputedStyle(elem, prop)
{
  if (typeof elem!="object") elem = document.getElementById(elem);

  // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
  if (document.defaultView && document.defaultView.getComputedStyle)
  {
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
  }

  // external stylesheet for Explorer and Opera 9
  if (elem.currentStyle)
  {
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
  }

  return "";
}






//================================================================================================
// для флеша  ====================================================================================
//================================================================================================

//v1.1
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AX_RunContent(){
  var ret = AC_AX_GetArgs(arguments);
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_AX_GetArgs(args){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();

    switch (currArg){
      case "pluginspage":
      case "type":
      case "src":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "data":
      case "codebase":
      case "classid":
      case "id":
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  return ret;
}

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?');
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, "", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret =
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();

    switch (currArg){
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace":
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}