var arrSize =["1X", "2X", "3X", "P", "S", "M", "L", "XL", "XXL", "One", "ONE", "P/S","M/L"]

///Add Array  prototype
Array.prototype.indexOfArr=function(substr,start){   
    var ta,rt,d='~';   
    if(start!=null)
    {
      ta=this.slice(start);
      rt=start;
    }
    else
    {
      ta=this;
      rt=0;
    }   
    var str=d+ta.join(d)+d;  
    var t=str.indexOf(d+substr+d,0);    
    if(t==-1)
      return -1;
    rt+=str.slice(0,t).replace(/[^~]/g,'').length;   
    return rt;   
}   
  
  
Array.prototype.replace=function(reg,rpby){   
    var ta=this.slice(0),d='\0';   
    var str=ta.join(d);strstr=str.replace(reg,rpby);   
    return str.split(d);   
}  
  
 Array.prototype.search=function(reg){   
    var ta=this.slice(0),d='\0',str=d+ta.join(d)+d,regregstr=reg.toString();   
    reg=new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g,'\\0$1\\0'),regstr.slice(regstr.lastIndexOf('/')+1));   
    t=str.search(reg);if(t==-1)return -1;return str.slice(0,t).replace(/[^\0]/g,'').length;   
}   

//////////////////////////////////////////////////////////////////////////////////////////

function pad(str ,len ,c ,dir)
{
    var out = String(str);
    if(!c) c = "0";
    if(!dir) dir = 1;
    var stuffLen = len-out.length;
    if (stuffLen>0)
    {
        for (var i=0;i<stuffLen;i++)
        {
            if(dir > 0 ) out= c + out;
            else out += c; 
        }
    }
    return out;
}
 
 
      

function getArray(arr)
{         
    var a=new Array(); 
    for(i=0;i<arr.length;i++)    
    {    
       a[i]=arr[i].split(" - ");
  
    }

    return a;
} 

function repalceSortValue(arr)
{
    var a=arr;
    for(i=0;i<a.length;i++)
    {

        if (isNaN(a[i][1]))
        {   
           a[i][1]=arrSize.indexOfArr(a[i][1]); 
        }
        else
        {
           a[i][1]=pad(a[i][1] ,2 ,"0" ,1); 
       
        }

    }
    return a;
}
        
function restoreOrgValue(arr)
{
    var a=arr;
    for(i=0;i<a.length;i++)
    {
          
        if (isNaN(a[i][1].length))
        {
            a[i][1]=arrSize[parseInt(a[i][1],10)]; 
        }
        else
        {
            a[i][1]=parseInt(a[i][1],10);   
        }

    }
    return a;
}

function distinctArr(arr)
{
    var a= new Array();
    a[0]=arr[0][0];
    var j=1;
    for (i=0;i<arr.length-1;i++)
    {
        if (arr[i][0]!=arr[i+1][0])
        {
            a[j]=arr[i+1][0];
            j++;
        }
    }
    return a;
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function createSelect(selectObjName)
{ 
    var mySelect = document.createElement("select"); 
    mySelect.id = selectObjName; 
    document.body.appendChild(mySelect); 
} 

function addOption(selectObjName,index,text,value)
{ 

    var obj=document.getElementById(selectObjName); 

    var idx=index;
    var elOptOld = null;
    if (idx>=0&&idx<=obj.length) elOptOld = obj.options[idx];  
    
    // IE & FF
    try 
    {   
        if (idx>=0&&idx<=obj.length)
          obj.options.add(new Option(text,value), elOptOld); // standards compliant; doesn't work in IE
        else obj.options.add(new Option(text,value));
    }
    catch(ex) 
    {
        if (idx>=0&&idx<=obj.length)
            obj.options.add(new Option(text,value), idx); // IE only
        else obj.options.add(new Option(text,value)); 
    }
     

} 

function removeAll(selectObjName)
{ 
    var obj=document.getElementById(selectObjName); 
    obj.options.length=0; 
} 

function removeOne(selectObjName,index)
{ 
    var obj=document.getElementById(selectObjName); 

    var idx=index;
    if (idx<0)  idx=obj.selectedIndex; 
    obj.options.remove(idx); 
} 

function getValue(selectObjName,index)
{
    var obj=document.getElementById(selectObjName); 
    var idx=index;
    if (idx<0) idx=obj.selectedIndex; 
    var val = obj.options[idx].value;
    return val;
}

function getText(selectObjName,index)
{
    var obj=document.getElementById(selectObjName); 
    var idx=index;
    if (idx<0) idx=obj.selectedIndex;
    var val = obj.options[idx].text; 
    return val;
}

function modifyTextValue(selectObjName,index,text,value)
{
    var obj=document.getElementById(selectObjName); 
    var idx=index;
    if (idx<0) idx=obj.selectedIndex;
    var val = obj.options[idx]=new Option(text,value); 
}

function removeSelect(selectObjName)
{ 
    var mySelect = document.getElementById(selectObjName); 
    mySelect.parentNode.removeChild(mySelect); 
} 

function addFromArray(selectObjName,arr,index)
{ 

    var obj=document.getElementById(selectObjName); 
    var idx=index;
    try
    {
        for (i=0;i<arr.length;i++)
        {
            
            addOption(selectObjName,idx,arr[i],arr[i]);
            idx = idx>=0 ? idx+1 : idx;
            
        }    
    }
    catch(ex)
    {
        throw ex;
    }
}


function addFrom2ArraySame(selectObjName,arr,index)
{ 

    var obj=document.getElementById(selectObjName); 
    var idx=index;
    try
    {
        for (i=0;i<arr.length;i++)
        {
            
            addOption(selectObjName,idx,arr[i][0],arr[i][0]);
            idx = idx>=0 ? idx+1 : idx;
            
        }    
    }
    catch(ex)
    {
        throw ex;
    }
}



function addFrom2Array(selectObjName,arr,index)
{ 

    var obj=document.getElementById(selectObjName); 
    var idx=index;
    try
    {
        for (i=0;i<arr.length;i++)
        {
            addOption(selectObjName,idx,arr[i][0],arr[i][1]);
            idx = idx>=0 ? idx+1 : idx;
            
        }    
    }
    catch(ex)
    {
        throw ex;
    }
}

function addFrom2ArrayByMasterSelect(selectObjName,masterSelectName,arr,index)
{ 
    try
    {
        var obj=document.getElementById(selectObjName); 
        var masterSelVal=getValue(masterSelectName,-1);
        var idx=index;
        var finded=false;
        var findedChgRec=true;
        var findedChgCount=0;
 
        for (i=0;i<arr.length;i++)
        {
            finded= (arr[i][0]==masterSelVal);
            if (finded==findedChgRec)
            {
                findedChgRec=!findedChgRec;
                findedChgCount++;  
            }
            if (finded)
            {
                addOption(selectObjName,idx,arr[i][1],arr[i][1]);
                idx = idx>=0 ? idx+1 : idx;
            }
            
            if (findedChgCount>=2) break;
            
        }    
    }
    catch(ex)
    {
        throw ex;
    }
}

function sortfunc(str1,str2){
  return eval(str1)- eval(str2);
}
        
  function writeSizes()
  {
  
  // switching photo when click on the swatch
  
    var ColorSelected = document.getElementById('colors').value;
  
    for(var i=0;i<ColorHasPhoto.length;i++){
      if(ColorSelected == ColorHasPhoto[i]){
      var SelectedPhoto = ColorSelected.replace(reBlank,"-");
      swapIt(SelectedPhoto);
      break;
      }
  };
  
    // end switching photo when click on the swatch
  
	           removeAll("sizes");
	           addOption('sizes',-1,'Then, Choose Size','');
	           addFrom2ArrayByMasterSelect('sizes','colors',data,-1);
  }

  function writeSizesOutfits(pColor, pSize, pData)
  {
	           removeAll(pSize);
	           addOption(pSize,-1,'Then, Choose Size','');
	           addFrom2ArrayByMasterSelect(pSize,pColor,pData,-1);
  }

        
      
